2013-10-02 94 views
1

我遇到了tastypie的問題,我無法找到是什麼原因造成的。無答案類似的問題:Tastypie foreign key relationship throwing errorTastypie外鍵關係'字典'對象沒有屬性'obj'

資源:

class VoteResource(ModelResource): 
    choice = fields.ToOneField(ChoiceResource, 'choice', full=True) 
    user = fields.ToOneField(UserResource, 'user') 

    class Meta: 
     queryset = Vote.objects.all() 
     resource_name = 'vote' 
     '''...''' 
     always_return_data = True 
     filtering = { 
      'id': ALL, 
      'user': ALL_WITH_RELATIONS, 
      'choice': ALL_WITH_RELATIONS 
     } 

    def hydrate(self, bundle):  
     bundle.obj.user = bundle.request.user 
     return bundle 

用於創建對象請求有效載荷:

{ 
    "choice": "/api/v1/choice/210/" 
} 

(用戶正在越來越通過水合物自動添加)。在full_hydrate的ressources.py中拋出異常。根據Django控制檯我的對象正在正確加載。

內tastypie線造成這是

setattr(bundle.obj, field_object.attribute, value.obj) # value obj is the evil one 

Tastypie sourcecode here

什麼殺了我的,它的工作就像3天前。我添加了1個其他資源,但未觸及選擇,用戶或與該模型相關的任何其他資源。我檢查了最近的提交歷史記錄,並且資源未被觸及。

回答

1

調試我的方式通過tastypie源並解決了我的問題。

看起來像tastypie首先調用相關對象的脫水。由於誤解,我在choice的脫水處理中返回了包中的數據,而不是實際的包本身。

當tastypie脫水choice,它顯然沒有得到捆綁對象,因此沒有obj

相關問題