这让我疯狂,希望有人可以指出我正确的方向来改变这种状况。我的模型中有一个布尔项,但是当我创建表单时,它会给出一个选项选项"未知","是"和"不"。我认为它会默认为" True"和"错误"所以需要相应地改变它。我最初的想法是使用一个Widget(就像我已经完成设置Textarea一样,但似乎无法找到模型或小部件.boolean选项。如果有人能指引我正确的话我真的欣赏它:)
下面的代码使用它,我只用了两个月的时间学习Django / Python(在我的业余时间,这对于4个月大的人而言并不多)所以代码可能不如有经验的人。
提前致谢:)
模型
class Announcement(models.Model):
announcement_title = models.CharField(max_length=75, verbose_name="Announcement Title")
announcement_text = models.CharField(max_length=500, verbose_name="Announcement Text")
announcement_active = models.BooleanField(default=True, verbose_name="Announcement Active")
announcement_date = models.DateField(default=date.today, verbose_name="Announcement Date")
announcement_high = models.BooleanField(default=True, verbose_name="Announcement Alert Severity")
announcement_expiry = models.DateField(null=True, verbose_name="Announcement Expiry")
def __str__(self):
return self.announcement_text
表格
class AnnouncementForm(ModelForm):
class Meta:
model = Announcement
exclude = ('announcement_date', 'announcement_active', )
help_texts = {
'announcement_title': _('Enter a title to give the announcement.'),
'announcement_text': _('Type the announcement body in this box.'),
'announcement_expiry': _('Can specify a date to stop displaying the announcement. Can be left blank.'),
'announcement_high': _('Tick this box to indicate a red severity, un-ticked will make it yellow.'),
}
widgets = {
'announcement_title': forms.TextInput(attrs={'class': 'form-control'}),
'announcement_text': forms.Textarea(attrs={'class': 'form-control', 'cols': 80, 'rows': 10}),
'announcement_expiry': widgets.DateInput(attrs={'class' : 'datepicker'}),
}
查看
相当大,所以不确定是否需要。如果需要可以发布。
模板
<form action="/siteadmin/{{ branding.dataset }}" method="POST" class="form-horizontal">
{% csrf_token %}
{% for item in form %}
<div class="form-group">
<div class="col-sm-4 control-label">
{% if item.help_text %}
<img src="/static/images/info.png" height="20" width="20" aria-hidden="true" data-toggle="popover" title="{{ item.help_text }}"> 
{% endif %}
{{ item.label_tag }}
</div>
<div class="col-sm-7">
{{ item }}
</div>
<div class="col-sm-1">
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-sm-11">
<input class="btn btn-primary pull-right" type="submit" value="Add" />
</div>
<div class="col-sm-1">
</div>
</div>
</form>
答案 0 :(得分:0)
我不确定你的意思是没有小部件选项。您可以像为任何其他字段一样为布尔字段定义窗口小部件:在窗体定义中。
catch