#django-forms
Вопрос:
У меня есть 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
для визуализации формы, и проблема в том, что я получаю label
и required
унаследовал от Book
модели. Поэтому мне нужно каким- 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
модели.
Как это решить?
Ответ №1:
Через несколько секунд после публикации мне в голову пришла идея.
class Meta:
model = Book
fields = ["title", "language"]
labels = {
"title": "",
"language": ""
}
widgets = {
'title': forms.TextInput(attrs={'placeholder': 'Title'}),
'language': forms.Select(attrs={'option': 'Language'}),
}
Теперь единственный вопрос, который у меня есть, — как установить первое значение для language
поля. На данный момент это справедливо -------------
.