gpt4 book ai didi

django - 使用 django.forms.ModelMultipleChoiceField 时预选所有复选框

转载 作者:行者123 更新时间:2023-12-05 05:19:51 32 4
gpt4 key购买 nike

我想向用户显示预先选择的选项(因为他们更有可能删除一些项目而不是添加所有项目,这很麻烦)。

是否可以预选 ModelMultipleChoiceField 呈现的所有复选框?

这会在模型或表单中完成吗?

我不想使用 javascript 来完成它。

我找不到任何关于 ModelMultipleChoiceField 预选的文档,官方文档也很少:https://docs.djangoproject.com/en/1.11/ref/forms/fields/#modelmultiplechoicefield

def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['my_items'] = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
queryset=models.MyItem.objects.all(),
initial=self.instance.MyItem.all())

如果我在模板中添加“checked”,我会得到一个错误:

{% render_field form.my_items class+="form-control" checked %}

错误:

'render_field' tag requires a form field followed by a list of attributes and values in the form attr="value"

最佳答案

正如指出的那样here ,您可以将 initial 设置为所有值:

# Let's assume this is your choice set
CHOICES = (
('a', 'A'),
('b', 'B'),
('c', 'C')
)

field = forms.MultipleChoiceField(
...
initial=[c[0] for c in CHOICES]
...
)

查询集

假设您要显示用户。只需使用:

...
queryset=User.objects.all(),
initial=[u for u in User.objects.all()])
...

它看起来像(我自己试过):

enter image description here

关于django - 使用 django.forms.ModelMultipleChoiceField 时预选所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483390/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com