我有一個使用 的視圖,formset factory但我正在嘗試設定呈現的 html 表單的樣式。但是通常的表單樣式不起作用,我不確定我需要做什么來應用 CSS 樣式。
我的觀點
def get_questionnaire(request, project_id, questionnaire_id):
# Get the Response object for the parameters
response = Response.objects.get(
project_name_id=project_id, questionnaire_id=questionnaire_id
)
AnswerFormSet = modelformset_factory(Answer, fields=('answer',), extra=0)
answer_queryset = Answer.objects.filter(response=response
).order_by('question__sequence'
).select_related('question')
if request.method == 'POST':
# to be completed
pass
else:
# Get the list of questions for which no Answer exists
new_answers = Question.objects.filter(
questionnaire__response=response
).exclude(
answer__response=response
)
# This is safe to execute every time. If all answers exist, nothing happens
for new_answer in new_answers:
Answer(question=new_answer, response=response).save()
answer_formset = AnswerFormSet(queryset=answer_queryset)
return render(request, 'pages/formset.html', {'formset': answer_formset})
目前我只是想通過在 forms.py 中應用小部件來設定單個欄位的樣式。但這不起作用。
class answer_formset(ModelForm):
class Meta:
model = Answer
fields = ('answer',)
widgets = {
'answer': forms.Select(attrs={'class': 'form-select'}),
}
HTML
{{ formset.management_form }}
{% for form in formset %}
{{ form.id }} {{ form.instance.question.question }}
{{ form.answer }}
<br>
{% endfor %}
謝謝
uj5u.com熱心網友回復:
您需要告訴工廠ModelForm使用哪個:
AnswerFormSet = modelformset_factory(Answer, form=answer_formset, fields=('answer',), extra=0)
從檔案:
您可以選擇傳遞表單引數以用作構建 ModelForm 的起點。
更多資訊:https : //docs.djangoproject.com/en/4.0/ref/forms/models/#modelform-factory
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389605.html
標籤:姜戈
下一篇:在Django中過濾多對多關系
