【发布时间】:2018-01-15 11:27:50
【问题描述】:
我正在 Django Rest Framework 中创建一个 Rest API,我有一个模型可以存储这样的数据-
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)
现在我想获取所有属于商品年份范围的对象,例如,所有commodity_year 介于 1999 年到 2014 年(包括两者)之间的对象。我一直在为此使用Django-filter 类,但没有运气。
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]
如果有人有更好的方法,请指导我。
【问题讨论】:
标签: django django-rest-framework django-filter