【问题标题】:Filtering by foreign key in dropdown在下拉列表中按外键过滤
【发布时间】:2016-02-23 22:08:14
【问题描述】:

我正在使用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']

【问题讨论】:

    标签: python django filter django-filter


    【解决方案1】:

    只是不要定义制造商过滤器字段,django-filter 将使用该字段的默认过滤器(这是一个下拉菜单)。所以这样的事情应该可以工作:

    类 CarFilter(django_filters.FilterSet): 元类: 型号 = 汽车 字段= ['名称','制造商']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      相关资源
      最近更新 更多