我有一个带有搜索框的表单,它使用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}$而且,这是由酥脆的形式呈现的。在
choices
不接受QuerySet作为参数,它需要一个由两个元组组成的具有可接受值的列表或元组。请参阅choices
上的文档:https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-choices。在在这种情况下,您需要将
Article
查询集转换为上述格式的列表或元组。在相关问题 更多 >
编程相关推荐