0

这是我的资源:

class CourseResource(ModelResource):  
    subjects = fields.ToManyField('core.api.SubjectResource', 'subjects', full=True)  
    class Meta:
        queryset = Course.objects.all()  
        resource_name = 'course'  
        authorization = Authorization()   
        validation = FormValidation(form_class=CourseForm) 

class SubjectResource(ModelResource):  
    class Meta:  
        queryset = Subject.objects.all()  
        resource_name = 'subject'  
        authorization = Authorization()  

我正在尝试在 django-tastypie 系统上使用 curl 发布。

curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"title":"title 123","description":"sdfsadfsdf","created_by":"1","created_on":"2012-02-23 03:24:56","initial-created_on":"2012-02-23 03:24:56.419838","subjects":["/api/v1/subject/1/"]}' http://127.0.0.1:8000/api/v1/course/

这就是我得到的:

HTTP/1.0 400 BAD REQUEST
Date: Thu, 23 Feb 2012 12:28:15 GMT
Server: WSGIServer/0.1 Python/2.7.2+
Content-Type: application/json; charset=utf-8

{"subjects": ["\"/api/v1/subject/1/\" is not a valid value for a primary key."]}%

我也尝试只发送 id 而不是 resource_uri,但这也不起作用。我确信我的帖子数据在某种程度上是错误的。我该如何解决?

4

1 回答 1

1

我自己修复了错误。罪魁祸首是我在我的models.py 中为ManyToMany 字段连接器使用了“through”。删除通过使处理 m2m 保存变得容易。否则,我使用“通过”的东西也应该可以工作,但我必须制作连接器的资源并发送适当的端点。

于 2012-02-24T08:28:51.020 回答