Django Form.覆盖模型字段



我有一个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模型继承了labelrequired。所以我需要以某种方式继承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"]

现在没有labelstitle是不需要的,但没有长度限制的标题和语言选择继承自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字段的第一个值。目前只有-------------

最新更新