Django - 如何将模型的选择显示为复选框

标签 django django-models django-forms

我关注了this但我仍然无法在表单上将选项显示为复选框。

模型.py

class Car(models.Model):
    TYPE_CHOICES = (
       ('s', 'small'),
       ('m', 'medium'),
       ('b', 'big'),
     )
     type = models.CharField(max_length=1, choices=TYPE_CHOICES)

表单.py

from django import forms
from django.forms.widgets import CheckboxSelectMultiple

from cars.models import Car

class AddCar(forms.ModelForm):
    class Meta:
        model = Car
        type = forms.MultipleChoiceField(choices=Car.TYPE_CHOICES, widget=forms.CheckboxSelectMultiple())

最佳答案

您需要使用 forms.RadioSelect() 而不是 forms.CheckboxSelectMultiple() 因为它是单值。

要覆盖 ModelForm 的小部件,check the doc

class AddCar(forms.ModelForm):
    class Meta:
        model = Car
        widgets = {'type': forms.RadioSelect}

或者如您的问题所示,type 行应该位于 class Meta 行上方,位于 AddCar

class AddCar(forms.ModelForm):
    type = forms.ChoiceField(choices=Car.SCENERY_CHOICES, widget=forms.RadioSelect)

    class Meta:
        model = Car

关于Django - 如何将模型的选择显示为复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859357/

相关文章:

javascript - 如何在django网站中将D3图保存为图像?

Django模型继承结构

django - 显示 sql 查询以创建 django 模型对象

django - 将 django 网站运行到服务器时,“模块”对象不可迭代

django - 使用 django-angular 和 django-bootstrap3

python - 如何在 Ubuntu 14.04 中通过 Apache 网络服务器运行两个 django 项目?

Django 迁移依赖引用不存在的父节点

django - 解决 Django 的 ManyToManyField 外键限制

django - 如何使用 FileFields 限制 ModelForms 文件上传的文件类型?

django - 基于计数的 ModelForm 订单字段