有没有一种方法可以使用 django-filter 和来自 cities-light 的 City 的位置外键来制作下拉复选框
Is there a way to make dropdown checkbox with django-filter and location foreignkey for City from cities-light
我用 django-filter 创建了一个下拉列表复选框,我设法做到了
使用选择选项为某些字段创建,但我无法检索
城市之光城市的数据库信息。什么时候放城市
选择值,我得到这个错误:
*
TypeError at / 'City' object is not iterable
这部分工作正常:
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']
我希望我的城市选择得到相同的结果。我怎样才能继续这样做
我认为您可以改用 ModelMultipleChoiceField,因为您使用的是模型 City
。像这样:
class PostFilter(filters.FilterSet):
location = filters.ModelMultipleChoiceFilter(queryset=City.objects.all())
class Meta:
model = Post
fields = ['location']
我用 django-filter 创建了一个下拉列表复选框,我设法做到了 使用选择选项为某些字段创建,但我无法检索 城市之光城市的数据库信息。什么时候放城市 选择值,我得到这个错误:
*
TypeError at / 'City' object is not iterable
这部分工作正常:
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']
我希望我的城市选择得到相同的结果。我怎样才能继续这样做
我认为您可以改用 ModelMultipleChoiceField,因为您使用的是模型 City
。像这样:
class PostFilter(filters.FilterSet):
location = filters.ModelMultipleChoiceFilter(queryset=City.objects.all())
class Meta:
model = Post
fields = ['location']