我正在使用REST API的django-rest-framework(最新版),并使用内置的测试客户端在django中实现了很少的测试用例.
以下django测试用例与django版本<1.5一起工作正常
self.client.put('/core/accounts/%s/'% self.account.id,
data = prepare_dict(self.account),
HTTP_AUTHORIZATION=self.token)
Run Code Online (Sandbox Code Playgroud)
升级到django 1.5,除了与HTTP PUT相关的测试外,所有测试都在通过, 同时调查发现的问题@ https://docs.djangoproject.com/en/dev/releases/1.5/#options-put-and-delete-请求合的测试客户端
如果在没有content_type的PUT请求中使用data参数,则必须先对数据进行编码,然后再将其传递给测试客户端并设置content_type参数.
因此,更新了我的测试以反映此更改并尝试了以下,但仍然获得http 415而不是http 200
from django.test.client import MULTIPART_CONTENT, BOUNDARY, encode_multipart
self.client.put('/core/accounts/%s/'% self.account.id,
data = encode_multipart(BOUNDARY, prepare_dict(self.account)),
content_type=MULTIPART_CONTENT,
HTTP_AUTHORIZATION=self.token)
Run Code Online (Sandbox Code Playgroud)
知道我错过了什么吗?PS:django-rest-framework内置Web UI的所有功能都运行良好
试图计算太阳拉特和长期使用PyEphem但不匹配星历表
SUN:2011 MAY 04 We 04 14:46:08 13TA12 = 43度约(根据网站www.findyourfate.com)
a = Sun()
a.compute('2011-05-04')
>>> a.hlon
274:18:49.1
>>> a.hlat
0:00:00.1
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?如何计算行星/太阳的经度.Helio公司/地心.
我得到了简单的要求(不是简单的实现),并且在没有对db进行多次命中的情况下确定如何实现它,并且没有.extra()在queryset中.
Task:
name = xxx
status = models.IntegerField(choices=some_choices)
project = ForeignKey(Project)
Project:
name = xxx
code = xxx
Run Code Online (Sandbox Code Playgroud)
项目包含具有各种状态的任务.(假设status = 3已完成)现在,我想列出所有项目的总任务和已完成的任务,如下所示
我能够使用注释获得total_tasks,但不能获得completed_tasks,因为它需要注释中的条件.无论如何要做到这一点?
如何使用django-rest-framework执行对象级条件验证.
如果我们validate(self, attrs)在序列化程序中使用,则会对所有调用进行验证.我应该知道并将其应用于某些http动词.例如:我想仅为PUT执行对象级验证.