gpt4 book ai didi

django - 预填充 MultipleChoiceField django

转载 作者:行者123 更新时间:2023-12-02 21:03:17 25 4
gpt4 key购买 nike

假设我有以下模型

class Application(models.Model):
occupation = models.TextField()

和表格

class ApplicationForm(forms.ModelForm):
def __init__(self, *args, **kwargs)
super().__init__(*args, **kwargs)
self.fields['occupation'] = forms.MultipleChoiceField(choices=OCCUPATION_CHOICES, widget=CheckboxSelectMultiple)

class Meta:
model = Application

当我将它与实例一起使用时(例如通过管理员),不会选择选项。

我做错了什么?

编辑: 说明:当我选择某些选项时,我点击提交,它会保存数据。它们在数据库中看起来像['undergraduate', 'postdoc']。但它们不再在表单中被检查。

最佳答案

我设法让它像这样工作。

import ast
class ApplicationForm(forms.ModelForm):

def __init__(self, *args, **kwargs):
if kwargs.get('instance'):
kwargs['initial'] = {
'occupation': ast.literal_eval(kwargs.get('instance').occupation or '[]'),
}
super().__init__(*args, **kwargs)

class Meta:
model = Application
widgets = {
'occupation': CheckboxSelectMultiple(choices=OCCUPATION_CHOICES),
}

感谢RodrigoDela,他让我意识到自己做错了什么,并为我指明了正确的方向。

关于django - 预填充 MultipleChoiceField django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236559/

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