我是django的新手,所以无法找到一种方法来实现复选框,多次选择我的自定义模型和django管理员。试过django文档,但仍然无法找到解决方案?the image is my project form wherein the technologies field should have a checkbox with multiple select. TIA
views.py
class ProjectCreate(CreateView):
model = Project
fields = ['projectid', 'title', 'description', 'startdate', 'enddate', 'cost', 'Project_type',
'employeeid', 'technologies', 'clientid', 'document']
class ProjectUpdate(UpdateView):
model = Project
fields = ['projectid', 'title', 'description', 'startdate', 'enddate', 'cost', 'Project_type',
'employeeid', 'technologies', 'clientid']
form-template.py
{% for fields in form %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<span class="text-danger small">{{ fields.errors }}</span>
</div>
<label class="control-label col-sm-2">{{ fields.label_tag }}</label>
<div class="col-sm-10">{{ fields }}</div>
</div>
{% endfor %}
答案 0 :(得分:1)
我们可以实现的是使用django-multiselectfield
django-multiselectfield
。
pip install django-multiselectfield
在Models.py
中,我们需要导入multiselectfield
,然后使用MultiSelectField
作为模态字段并传递必需的参数。
from django.db import models
from multiselectfield import MultiSelectField
MY_CHOICES = ((1, 'Value1'),
(2, 'Value2'),
(3, 'Value3'),
(4, 'Value4'),
(5, 'Value5'))
#choices can be a list also
class MyModel(models.Model):
#....
my_field = MultiSelectField(choices=MY_CHOICES,
max_choices=3,
max_length=3)
现在,在管理面板中,打开MyModel form
时,您会看到5个复选框,其中最多只能选择3个定义的max_choices=3
如果要使用模板渲染modelform
,则只需在Forms.py
中指定字段。
如果要从另一个表中获取下拉数据,请参考此question