2013-02-05 22 views
1

自定義搜索其實我們有2種型號使用tastypie

class Event(Basetable): 
    title = models.CharField(max_length=150) 
    event_description = models.TextField() 
    image = ThumbnailerImageField(upload_to=get_eventlogo_path, resize_source=dict(size=(700, 0), crop='smart'),) 
    category = models.ManyToManyField("EventCategory") 
    venue = models.ForeignKey(Venue,null=True) 

class Venue(models.Model): 
venue = models.CharField(max_length=100) 
address1 = models.CharField(max_length=200) 
address2 = models.CharField(max_length=200,blank=True) 
slug = models.CharField(max_length=150,blank=True,null=True) 
country = models.ForeignKey(Countries,null=True,blank=True,on_delete=models.SET_NULL) 
state = models.ForeignKey(States,null=True,on_delete=models.SET_NULL) 
city = models.ForeignKey(City,null=True,on_delete=models.SET_NULL) 

tastypie代碼

class EventResource(ModelResource): 
venue  = fields.ForeignKey(VenueResource, 'venue')  

class Meta: 
    queryset = Event.objects.filter(status='P').order_by('-id').distinct() 
    resource_name = 'eventlist' 
    filtering = { 
     "slug": ('exact', 'startswith',), 
     "title": ALL, 
    } 

我的問題是,我需要使用城市,是在場地

前WWW獲得事件的結果。 example.com/api/v1/eventlist/?format=json & city =「chicago」但它不會幫助我

回答

3

您必須允許按場地過濾:

filtering = { 'venue': ALL_WITH_RELATIONS 

       } 

此鏈接將生效。 www.example.com/api/v1/eventlist/?format=json & venue_ 城市 _name =「芝加哥」

+0

查找不得超過一層深其顯示的錯誤 –

+2

您應該允許在過濾按城市和城市資源按名稱分列的場館資源 – UnLiMiTeD

+0

它可以幫助你 –