繁体   English   中英

如何隐藏默认标签 Django 模型表单?

[英]How to hide default label Django Model forms?

当我使用带有 {{form}} 标签的模型表单时,我会为每个元素获取一个默认标签。 我可以从元类定义中删除它吗?

我的模型类:

class message(models.Model):
    name = models.CharField(max_length=30)
    email = models.EmailField(max_length=40)
    contact = models.IntegerField(max_length=15)
    message = models.CharField(max_length=1000,blank=True, null=True)

我的表单类:

class MessageForm(forms.ModelForm):
    class Meta:
        model = message
        fields = '__all__'

        widgets = {
            'name' : forms.TextInput(attrs={"value":"Name", "onfocus":"this.value = '';","onblur":"if (this.value == '')","required":""}),
            'email' : forms.TextInput(attrs={"value":"email", "onfocus":"this.value = '';","onblur":"if (this.value == '')","required":""}),
            'contact' : forms.TextInput(attrs={"value":"contact", "onfocus":"this.value = '';","onblur":"if (this.value == '')","required":""}),
            'message' : forms.Textarea(attrs={"value":"emmessage", "onfocus":"this.value = '';","onblur":"if (this.value == '')","required":""})
        }

HTML代码:

<div class="col-md-6 mail_right">
<form action="" method="post" >  {% csrf_token %}
    {{form}}                                    
</form>
</div>

使用labels -- (django doc)元选项作为

class MessageForm(forms.ModelForm):
    class Meta:
        model = message
        fields = '__all__'
        labels = { "name": "UpdatedNameLabel", "email": "UpdatedEmailLabel" }

有多种方法可以做到这一点。 但是,为什么不将verbose_name放在带有所需标签的模型字段定义中,或者如果将其留空,则标签不会显示。

所以,在models.py中:

start_date = models.DateField(verbose_name="Start date")

或者

start_date = models.DateField(verbose_name="")

另一个选项是在 forms.py 中:

email = forms.EmailField(label="")

这对你有用吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM