Django ModelForm CheckBox小部件

发布时间 2023-03-29 17:09:00作者: super_ip

我目前遇到问题,并且可能忽略了一些琐碎的事情。 我的模型中有一个字段,该字段应允许通过复选框表单进行多种选择(不必在管理屏幕中成为复选框,只需在最终用户将看到的表单区域中)。 目前,我的字段设置如下:

# Type of Media
MEDIA_CHOICES = (    
    ('1', 'Magazine'),
    ('2', 'Radio Station'),
    ('3', 'Journal'),
    ('4', 'TV Station'),
    ('5', 'Newspaper'),
    ('6', 'Website'),
)
media_choice = models.CharField(max_length=25,choices=MEDIA_CHOICES)

我需要考虑这一点,并在其中以表格的形式选择复选框。 当我创建一个ModelForm时,它想做一个下拉框。 因此,我自然会覆盖该字段,然后得到想要的复选框。 但是,提交表单后,当我查看管理屏幕时,似乎没有任何有用的东西被保存。 但是,数据库确实显示我选择了许多东西,这是一个积极的信号。 但是,如何使它正确反映在管理屏幕中?

class SomeModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SomeModelForm, self).__init__(*args, **kwargs)
        self.fields['some_field'].widget = forms.CheckboxSelectMultiple()

记录2

class SomeModelForm(forms.ModelForm):
    some_field = forms.CharField(choices=MEDIA_CHOICES,
                                 widget=forms.CheckboxSelectMultiple)
    class Meta:
        model=SomeModel