model.py
class Device(models.Model):
uuid = models.CharField(max_length=100)
major = models.CharField(max_length=10)
minor = models.CharField(max_length=10)
resource.py
class DeviceResourceV3(ModelResource):
'''Fetch device details'''
class Meta:
queryset = Device.objects.all()
resource_name = 'device'
always_return_data = True
filtering = {
'uuid': ['exact', 'in'],
'id': ['exact']
}
Запрошенного API вызовы:Tastypie: Advance фильтр со сложным запросом
/api/device?uuidmm__in=XXXXXX,YYYYY
Теперь в соответствии с требованием, мы должны создать фильтр, который приведет все устройства, для которых (UUID + главного + минора) в [XXXXXX, YYYYY]
Я пошел, хотя авансовые фильтры, упомянутые в
http://django-tastypie.readthedocs.org/en/latest/resources.html и
Django Tastypie Advanced Filtering: How to do complex lookups with Q objects
, но этот служебный прецедент становится слишком сложным. Кто-нибудь может предложить подходящие методы build_filters и apply_filters для этого запроса или любой другой простой подход для этого.