2013-02-05 4 views
1

를 사용하여 실제로 우리가 한 검색이 개 모델사용자 정의 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

을 보여주는 하나 개 이상의 수준 깊은 도시 및 CityResource에 의한 장소 자원 이름은 – UnLiMiTeD

+0

입니다. –