gpt4 book ai didi

python - 如何将 optgroups 添加到 django ModelMultipleChoiceField?

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:09 24 4
gpt4 key购买 nike

我有一个带有 ModelMultipleChoiceField 的表单来列出类别。我想使用 Category.group 字段对类别进行分组。

我认为通过更改 field.choices 在 init 函数中它会成功

class CategoriesField(forms.ModelMultipleChoiceField):
def __init__(self, queryset, **kwargs):
super(forms.ModelMultipleChoiceField, self).__init__(queryset, **kwargs)
self.queryset = queryset.select_related()
self.to_field_name=None

group = None
list = []
self.choices = []

for category in queryset:
if not group:
group = category.group

if group != category.group:
self.choices.append((group.title, list))
group = category.group
list = [(category.id, category.name)]
else:
list.append((category.id, category.name))
try:
self.choices.append((group.title, list))
except:
pass

但是 ModelChoiceIterator 仍然会删除 __init__ 函数中设置的 self.choices 信息。

我怎样才能以正确的方式做到这一点?

最佳答案

实际上它就像我刚刚解释的那样工作,但不要忘记那部分:

class ProfilForm(ModelForm):
categories = CategoriesField(queryset=Category.objects.all().order_by('group'), label=_(u'Catégories'))

关于python - 如何将 optgroups 添加到 django ModelMultipleChoiceField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737116/

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