2012-02-23 59 views
0

這裏是我的資源:Django的tastypie多對多後場JSON錯誤

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 --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太多,但也不能正常工作。我確定我的發佈數據在某些方面是錯誤的。我該如何解決?

回答

1

我自己修復了錯誤。罪魁禍首是我在ManyToMany字段連接器的models.py中使用「through」。通過移除可以輕鬆實現m2m保存。否則,我使用'through'的東西也應該可以工作,但我必須爲連接器創建資源併發送適當的端點。

+0

您是否能夠在沒有資源的情況下使代碼正常工作?每個http://stackoverflow.com/questions/11442521/django-tastypie-not-updating-resource-with-manytomanyfield我似乎無法...... – Erik 2012-07-11 23:51:07