我有一个Model
from django.conf.global_settings import LANGUAGES
class Book(models.Model):
title = models.CharField(max_length=120)
language = models.CharField(max_length=56, choices=LANGUAGES, blank=True)
和Form
class SearchForm(forms.ModelForm):
class Meta:
model = Book
fields = ["title", "language"]
我使用crispy
来呈现表单,问题是我从Book
模型继承了label
和required
。所以我需要以某种方式继承max_length
表单模型字段并设置新的labels
值。
我的方法
class SearchForm(forms.ModelForm):
title = forms.CharField(
widget=forms.TextInput(attrs={"placeholder": "Title"}), required=False, label=""
)
language = forms.CharField(
widget=forms.TextInput(attrs={"placeholder": "Language"}), label=""
)
class Meta:
model = Book
fields = ["title","language"]
现在没有labels
和title
是不需要的,但没有长度限制的标题和语言选择继承自Book
模型
如何解决?
发完帖子几秒钟后,我有了一个想法。
class Meta:
model = Book
fields = ["title", "language"]
labels = {
"title": "",
"language": ""
}
widgets = {
'title': forms.TextInput(attrs={'placeholder': 'Title'}),
'language': forms.Select(attrs={'option': 'Language'}),
}
现在我唯一的问题是如何设置language
字段的第一个值。目前只有-------------
。