How can I make a tastypie filter in a foreign field?

I have two models:

class CompanyResource(ModelResource): class Meta: queryset = Company.objects.all() fields = ['title', 'latitude', 'longitude'] resource_name = 'company' filtering = { 'latitude': ALL, 'longitude': ALL } class EventResource(ModelResource): company = fields.ToOneField(CompanyResource, 'company', full=True) class Meta: fields = ['title', 'company'] queryset = Event.objects.all() resource_name = 'event' filtering = { 'company': ALL_WITH_RELATIONS } 

Then I try to access /api/v1/event/?format=json&company_latitude__within=2,3 or /api/v1/event/?format=json&company_latitude__lt=1 , it is not filtered by latitude:

 { "meta": { "limit": 20, "next": "/api/v1/event/?offset=20&limit=20&format=json", "offset": 0, "previous": null, "total_count": 329 }, "objects": [ { "company": { "latitude": "1.30521100000000", "longitude": "103.81116299999996", "resource_uri": "" }, "resource_uri": "/api/v1/event/16/", "title": "50% off at Infusion@Dempsey , $50 for $100 worth of Fine Dining" } ] } 

How can I do this job?

+4
source share
1 answer

Oh, this is because of two things. I cannot do field__within in Django (why did I think so?), And it should have been /api/v1/event/?format=json&company__latitude__lt=2 .

+4
source

Source: https://habr.com/ru/post/1434300/


All Articles