我正在使用django-filters。
我的汽车型号有制造商外键。我想要做的是通过数据库中所有制造商填充的下拉列表来过滤汽车。
class Car(models.Model):
slug = models.SlugField(unique=True)
name = models.CharField(max_length=256)
cost = models.DecimalField(max_digits=10,decimal_places=5)
manufacturer = models.ForeignKey(Manufacturer)
我的过滤器目前是一个空白文本字段,您可以输入制造商名称,然后提交以这种方式过滤。 Dropdown会更合适,但我找不到办法做到这一点。这是现在的过滤器模型:
class CarFilter(django_filters.FilterSet):
manufacturer = django_filters.CharFilter(name="manufacturer__name")
class Meta:
model = Car
fields = ['name', 'manufacturer']
答案 0 :(得分:1)
根本不要在所有中定义制造商过滤器字段,而django-filter将使用此字段的默认过滤器(这是一个下拉列表)。所以这样的事情应该有效:
class CarFilter(django_filters.FilterSet): class Meta: model = Car fields = ['name', 'manufacturer']