【发布时间】:2019-08-03 01:22:09
【问题描述】:
我正在尝试从我的msg_direction 字段中获取不同选择的列表,这些字段填充在我的表单中。在选择和 GET 时,将应用过滤器并使用过滤后的数据刷新页面。代码在我做出选择之前一直有效,我使用ModelChoiceFilter 得到以下验证错误:
* 选择一个有效的选项。该选择不是可用的选择之一。
这是我模型中的字段定义:
msg_direction = models.CharField(max_length=20)
这是我的 filters.py 文件中的过滤器定义:
msg_direction = ModelChoiceFilter(queryset=Message.objects.
values_list('msg_direction',
flat=True).distinct().order_by())
我也尝试过ChoiceFilter,但我更愿意使用从该字段动态生成的列表,而不是指定一个固定的选项列表。
提前致谢!
【问题讨论】:
-
a
ModelChoiceFilter用于选择模型实例(因此它需要实例的id),而不是从数据库中特定列的值列表中进行选择。您应该使用ChoiceFilter并将数据库中的值列表作为选项列表传递。没有什么能阻止您使用在运行时计算的列表来初始化您的ChoiceFilter。
标签: django python-3.x