Атрибут размера пользовательской настройки Django в форме модели не работает - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь указать длину в символах в поле модели. Я не могу заставить его отобразиться на странице и вставить атрибут размера в поле ввода.

Базовая форма выглядит следующим образом:

class QuestionForm(ModelForm):
question = forms.CharField(label="Question")

class Meta:
    model = Question
    fields = ["question"]

Я пробовал следующее:

class QuestionForm(ModelForm):
question = forms.CharField(label="Question",widgets=forms.TextInput(attrs={'size':'50'}))

class Meta:
    model = Question
    fields = ["question"]

И

class QuestionForm(ModelForm):
question = forms.CharField(label="Question")

class Meta:
    model = Question
    fields = ["question"]
    widgets = {
        'question': forms.TextInput(attrs={'size':'50'})
    }

И

Класс QuestionForm (ModelForm): question = forms.CharField (label = "Question")

def __init__(self, *args, **kwargs):
    super(QuestionForm,self).__init__(*args, **kwargs)
    self.fields['question'].widget.attrs['size'] = '50'

Форма является частью фабрики форм-наборов, нужно ли вам что-то менять при ее использовании?

ApplicationForm = forms.formset_factory(QuestionForm)
ModelApplicationForm = forms.modelformset_factory(Question, fields=('question',))

1 Ответ

0 голосов
/ 02 ноября 2019

Проблема заключалась в том, что при использовании modelformset_factory я передаю модель вопроса, а не форму, поэтому она вообще не использует класс формы. Мне удалось найти решение, которое было бы передать в виджетах modelformset_factory.

ModelApplicationForm = forms.modelformset_factory(Question, fields=('question',),widgets={"question": forms.TextInput(attrs={'size':'50'})})
...