2013-02-12 210 views
0

我在我的tastypie api中設置了相關的字段。tastypie資源路徑

我有這個在我的api.py文件:

class PeopleResource(ModelResource): 
event_id = fields.ForeignKey(EventResource,'event', full=True) 
answer_link = fields.ForeignKey(DatePeopleResource,'datepeople', full=True, related_name='datepeople') 
class Meta: 
    queryset = EventPeople.objects.all() 
    resource_name = 'people' 
    filtering = { 
     'event_id' : ALL, 
     'phone_number' : ALL, 
     'name' : ALL, 
     'answer' : ALL, 
    } 
    authorization = Authorization() 



class DatePeopleResource(ModelResource): 
event = fields.ForeignKey(EventResource,'event') 
event_date = fields.ForeignKey(DateResource,'event_date') 
event_person = fields.ForeignKey(PeopleResource,'event_person', related_name='people') 
class Meta: 
    queryset = DatePeople.objects.all() 
    resource_name = 'datepeople' 
    filtering = { 
     'event' : ALL, 
     'event_person' : ALL, 
     'event_date' : ALL, 
    } 
    authorization = Authorization() 

我的問題是有關PeopleResource的DatePeopleResource現場工作,但第一個不能正常工作。 (與PeopleResource的DatePeopleResource相關的一個)

我想這是因爲DatePeopleResource尚未定義。在tastypie文檔,它看起來像我有打電話DatePeopleResource,這樣前添加path.to.api.resource:

answer_link = fields.ForeignKey(path.to.resource.DatePeopleResource,'datepeople', full=True, related_name='datepeople') 

但我不知道的路徑是什麼!我試過'資源','api'......我不太明白這條道路是什麼。

謝謝你的幫助,我卡住了!

回答

2

到資源的路徑是一樣的東西

"appname.api.classname" 

,不要忘了把它放到引號,因爲是的,這是沒有,當你想用它來定義。

+0

是的!非常感謝你 ! – 2013-02-12 10:15:12

+0

行情!非常感謝你。 – Joshua 2013-03-04 17:49:41

0

您也可以導入DatePeopleResource,然後用它來定義與它的關係。 例如:

from ..api import DatePeopleResource 

class EventResource(ModelResource): 
    event = fields.ForeignKey(DatePeopleResource, 'event') 

就這樣,代碼更乾淨。

+0

啊,謝謝。我不知道我可以從它自己的文件中導入一個類。 – 2013-02-14 12:00:03

+0

如果它在它自己的文件中,則不需要導入它。 – UnLiMiTeD 2013-02-14 12:23:45