如何用选项填充Django自定义multiplechoicefield

2024-10-02 16:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有搜索框的表单,它使用jQuery填充multipleChoiceField。我需要使用一个定制的multipleechoicefield,这样我就可以控制验证,只检查选项是否存在,而不是像带有queryset的modelmultipechoicefield那样检查它是否是原始选择之一。但是,定制的multipleChoiceField在页面上呈现为空,直到您通过jQuery在搜索框中输入一些内容来填充它。我想它渲染与一些选择开始代替。在

class ArticleMultipleChoiceField(forms.MultipleChoiceField):
   def __init__(self, *args, **kwargs):
      super(ArticleMultipleChoiceField, self).__init__(*args, **kwargs)
      include_articles = [article.id for article in Article.objects.order_by('-sub_date')[:5]]
      self.choices = Article.objects.filter(id__in=include_articles).order_by('-sub_date')

在这个表单中,我得到错误“Article object is not iterable”。我也试着改变这一点自我选择到自我数据, 自我查询集,和自签名,在这三种情况下,我总是得到一个空的多选字段。在

如何使用queryset在这里提供初始选择集?在

以下是它的使用形式:

^{pr2}$

而且,这是由酥脆的形式呈现的。在


Tags: inselfid表单includeinitarticleargs
1条回答
网友
1楼 · 发布于 2024-10-02 16:30:39

choices不接受QuerySet作为参数,它需要一个由两个元组组成的具有可接受值的列表或元组。请参阅choices上的文档:https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-choices。在

在这种情况下,您需要将Article查询集转换为上述格式的列表或元组。在

相关问题 更多 >