Je fais une API Rest dans le Cadre de repos Django pour lequel j'ai un modèle qui stocke les données comme this-Filtrage des objets à travers une gamme d'attributs d'objet dans Django-repos-cadre
class Commodity(models.Model):
def countryname(self):
return self.country.country_name
country=models.ForeignKey(Country)
commodity_name=models.CharField(max_length=255)
commodity_type=models.IntegerField(choices=COMMODITY_TYPE)
commodity_year=models.IntegerField(default=None)
commodity_production=models.IntegerField(default=None)
def __unicode__(self):
return self.commodity_name +"-"+str(self.country.country_name)
Maintenant, je veux obtenir tous les objets qui tombent dans une plage de commodity_year, par exemple, tous les objets dont commodity_year
est compris entre 1999 et 2014 (les deux inclus). J'ai utilisé la classe Django-filter
pour cela mais je n'ai pas eu de chance.
class CommodityFilter(filters.FilterSet):
start_date = DateFilter(name='commodity_year')
end_date = DateFilter(name='commodity_year')
class Meta:
model = Commodity
fields = [ 'country','commodity_name', 'commodity_type','start_date','end_date']
class CommodityList(generics.ListCreateAPIView):
queryset = Commodity.objects.all()
serializer_class = CommoditySerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_class = CommodityFilter
permission_classes = [AllowAny]
Si quelqu'un a une meilleure approche, veuillez me guider.