the*_*eld 14 python django label hide modelform
我有以下内容,但为什么这不会隐藏书评的标签?我得到错误'textfield'没有定义:
from django.db import models
from django.forms import ModelForm, Textarea
class Booklog(models.Model):
Author = models.ForeignKey(Author)
Book_comment = models.TextField()
Bookcomment_date = models.DateTimeField(auto_now=True)
class BooklogForm(ModelForm):
#book_comment = TextField(label='')
class Meta:
model = Booklog
exclude = ('Author')
widgets = {'book_entry': Textarea(attrs={'cols': 45, 'rows': 5}, label={''}),}
Run Code Online (Sandbox Code Playgroud)
Ala*_*air 18
为了扩展我上面的评论,没有表单的TextField.这就是TextField错误告诉你的内容.在您拥有有效的表单字段之前,没有必要担心标签.
解决方案是使用forms.CharField,使用Textarea小部件.您可以使用模型窗体小部件选项,但在定义字段时设置窗口小部件更简单.
获得有效字段后,您就已经知道如何设置空白标签:只需在字段定义中使用label =''即可.
# I prefer to importing django.forms
# but import the fields etc individually
# if you prefer
from django import forms
class BooklogForm(forms.ModelForm):
book_comment = forms.CharField(widget=forms.Textarea, label='')
class Meta:
model = Booklog
exclude = ('Author',)
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Django 1.6+,则会在ModelForm的元类中添加一些新的覆盖,包括标签和field_classes
.
请参阅:https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#overriding-the-default-fields
要覆盖您可以执行的标签
def __init__(self, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.fields['my_field_name'].label = 'My New Title'
Run Code Online (Sandbox Code Playgroud)