Dar*_*ech 2 django django-forms
我有一个 models.py:
class MyModel(models.Model):
...
fries_with_that = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
形式.py:
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = (
'fries_with_that',
)
Run Code Online (Sandbox Code Playgroud)
这工作正常,并为我提供了“未知”、“是”和“否”选项的下拉菜单。但我真的想要一个复选框。所以我补充道:
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.fields['fries_with_that'].widget = forms.CheckboxInput()
Run Code Online (Sandbox Code Playgroud)
现在我得到一个复选框,但选中后,表单返回值None。为什么是这样?
视图.py:
form = MyModelForm(request.POST or None)
if form.is_valid():
# UPDATE PROJECT
updated = MyModel.objects.filter(
project_id=project_id
).update(**form.cleaned_data)
if updated == 0:
project = form.save()
Run Code Online (Sandbox Code Playgroud)
尝试这个:
class MyModelForm(ModelForm):
fries_with_that = forms.BooleanField(widget=forms.CheckboxInput, default=False)
class Meta:
model = MyModel
fields = (
'fries_with_that',
)
Run Code Online (Sandbox Code Playgroud)
实际上,这应该呈现复选框。
fries_with_that = forms.BooleanField()
Run Code Online (Sandbox Code Playgroud)