有没有一种方法可以使用django-filter和city-light的City位置外键制作下拉复选框

时间:2019-01-03 14:32:06

标签: python django django-filter

我使用django-filter创建了一个下拉列表复选框, 使用选择选项为某些字段创建,但是我无法检索 城市轻型城市的数据库信息。当把城市 选择值,出现此错误:

*

  / p“城市”对象中的

TypeError不可迭代

本节工作正常:

        CITY_CHOICES = (
            ('city1','city1'),
            ('city2','city2'),
        )

        class PostFilter(filters.FilterSet):
            location = filters.MultipleChoiceFilter(field_name='location', choices=CITY_CHOICES, widget=forms.CheckboxSelectMultiple())
            class Meta:
                model = Post
                fields = ['location']

此问题部分:

from cities_light.models import City

class PostFilter(filters.FilterSet):
    location = filters.MultipleChoiceFilter(field_name='location', choices=City, widget=forms.CheckboxSelectMultiple())
    class Meta:
        model = Post
        fields = ['location']

我希望城市选择的结果相同。我该怎么做

1 个答案:

答案 0 :(得分:0)

我认为您可以改用ModelMultipleChoiceField,因为您使用的是模型City。像这样:

class PostFilter(filters.FilterSet):
    location = filters.ModelMultipleChoiceFilter(queryset=City.objects.all())
    class Meta:
        model = Post
        fields = ['location']