當我嘗試通過我的項目API創建一個帶有外鍵的對象(在本例中爲2)時,tastypie嘗試創建相關對象(此處訂購&參與者) :django-tastypie嘗試在POST請求上創建相關對象
class ParticipationResource(ModelResource):
order = fields.ForeignKey(Order, 'order', full=True,)
participant = fields.ForeignKey(UserProfile, 'participant', full=True)
class Meta:
authorization = Authorization()
queryset = Participation.objects.all()
resource_name = 'participation'
fields = ['id', 'order', 'participant', 'products', 'created_at', 'modified_at']
filtering = {
'participant': ALL
}
detail_allowed_methods = ['get', 'post', 'put', 'delete',]
always_return_data = True
數據貼:
{
"order": {
"id":"1",
"resource_uri":"/api/v1/order/1/"
...
},
"participant":{
"id":"1",
"resource_uri":"/api/v1/participant/1/"
...
},
"products":[]
}
錯誤消息(NETWORK_ID是所述用戶簡檔模型外鍵):
"error_message": "app_user_profile.network_id may not be NULL",
正如你可以看到我發送我的POST請求中的完整對象,我只用了resource_uri嘗試,它工作正常,問題是我需要客戶端渲染的全部對象(我使用Backbone和該模型會自動呈現)。那我該怎麼辦?有沒有辦法告訴tastypie不要創建相關的對象?
你問的是如何有Tastypie返回完整嵌套的對象,但是當你回發時,Backbone只會POST resource_uri,而不是嵌套對象的完整JSON? 您是使用Backbone-Tastypie還是Backbone-Relational來處理事物的骨幹一側的嵌套對象?或者,所以你有一個自定義的parse()函數? – 2012-02-10 15:32:29
我想只使用完整的對象,以便能夠自動在Backbone的一側渲染嵌套對象,但似乎Tastypie無法處理相關對象,並嘗試創建新的,當我們不給resource_uri時(雖然resource_uri在裏面物體)。我使用Backbone-Tastypie和自定義parse()函數。 – djevg 2012-02-10 16:11:06
你有一個小錯字,字段(。)ForeignKey – 2012-04-04 09:06:27