Python Django模型表单在默认情况下是必需的吗?如何将整个表单的required设置为false?
models.py: forms.py html呈现: 包含必填字段的HTML的一部分: 我没有在任何地方指出表单应该要求所有字段,但它们是随附的。那么,Django模型表单在默认情况下是必需的吗?如何将整个表单的required设置为false?将blank=True添加到不需要的字段中Python Django模型表单在默认情况下是必需的吗?如何将整个表单的required设置为false?,python,django,forms,model,Python,Django,Forms,Model,models.py: forms.py html呈现: 包含必填字段的HTML的一部分: 我没有在任何地方指出表单应该要求所有字段,但它们是随附的。那么,Django模型表单在默认情况下是必需的吗?如何将整个表单的required设置为false?将blank=True添加到不需要的字段中 class Venue(models.Model): . . . title = models.CharField(max_length=300, blank=True) . . .
class Venue(models.Model):
. . .
title = models.CharField(max_length=300, blank=True)
. . .
你能提供一个例子吗?在构建一个模型时,一般需要考虑两个参数。空白和空参数。字段blank=True表示表单中不需要该字段,但是,如果不提供该字段并且没有默认设置,则保存将崩溃,因为模型字段不能为null。另外,使用null=True比使用default=更好,并且不要在表单字段中添加标签,而是在模型字段中添加详细的名称。[.@Borut再次感谢您提供的信息。链接。但是标签很容易设置样式,与verbose_name相同吗?我不知道您对样式设置的意思。根据我的经验,它是一样的。但这是您的选择。如果您不想,您不必使用它。我更喜欢它,因为表单代码看起来更干净。我很少需要用它来覆盖verbose_name模型形式中的h标签。
class VenueForm(forms.ModelForm):
class Meta:
model = Venue
fields = [
'title',
'content',
'city',
'address',
'phone',
'email',
'site',
'facebook',
'instagram',
]
def __init__(self, *args, **kwargs):
super(VenueForm, self).__init__(*args, **kwargs)
self.fields['title'].label = "Име"
self.fields['content'].label = 'Описание'
self.fields['city'].label = 'Град'
self.fields['address'].label = 'Адрес'
self.fields['phone'].label = 'Телефон'
self.fields['email'].label = 'E-mail'
self.fields['site'].label = 'Сайт'
<form method="post" id="dialog_addVenue_part" enctype="multipart/form-data">
{% csrf_token %}
{% for hidden in postForm.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form %}
<div class="fieldWrapper">
<div class="errorcode{{field.html_name}}">
{{ field.errors }}
</div>
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
<div id="map" style="height: 500px;">
</div>
<div class="utf_addVenue_form">
<button type="submit" value="Изпрати">Изпрати</button>
</div>
</form>
<div class="fieldWrapper">
<div class="errorcodesite">
</div>
<label for="id_site">Сайт:</label> <input type="text" name="site" maxlength="100" required="" id="id_site">
</div>
<div class="fieldWrapper">
<div class="errorcodefacebook">
</div>
<label for="id_facebook">Facebook:</label> <input type="text" name="facebook" maxlength="100" required="" id="id_facebook">
</div>
class Venue(models.Model):
. . .
title = models.CharField(max_length=300, blank=True)
. . .