Djano UpdateView не отображает modelForm
У меня есть модель assesment, которая связана с другими моделями. Я создал UpdateView, форму на основе модели assesment. Проблема в том, что когда я отображаю форму в шаблоне, ни одно поле не отображается, кроме кнопки отправки, поэтому обновлять нечего. я вижу только кнопку отправки без полей формы
Здесь дизайны ниже
models.py
class assessment(models.Model):
className = models.ForeignKey(all_class, on_delete=models.SET_NULL, null=True)
student = models.ForeignKey(students, on_delete=models.SET_NULL, null=True)
subjectName = models.ForeignKey(allsubject, on_delete=models.SET_NULL, null=True)
firstCa = models.IntegerField(default=0)
secondCa = models.IntegerField(default=0)
exam = models.IntegerField(default=0)
section = models.CharField(max_length=100, choices=section_choices)
term = models.CharField(max_length=100 , choices=term_choices)
session = models.CharField(max_length=1000)
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.className)
class Meta:
ordering = ['className']
views.py
class assessmentEntry(UpdateView):
model = assessment
fields = '__all__'
Form_class = AssessmentForm
template_name = 'result/assessmentScore.html'
success_url = reverse_lazy('result:index')
Forms.py
class AssessmentForm(forms.ModelForm):
class Meta:
model = assessment
fields = ['className','student','subjectName','firstCa','secondCa','exam']
urls.py
path('assessmentScores/<int:pk>/', assessmentEntry.as_view(), name='assessmentScores'),
template(assessmentScore.html)
<div >
<form method="POST">
{% csrf_token %}
{{ Form.as_p}}
<button
type="submit"
class="px-2 text-white bg-indigo-500 rounded-md focus:bg-indigo-600 focus:outline-none">
Save Scores
</button>
</form>
</div>
Пожалуйста, что именно я делаю неправильно? И как мне это исправить.
Представления на основе классов, которые наследуются от FormMixin
[Django-doc], как FormView
, CreateView
, UpdateView
и DeleteView
передают объект формы в шаблон как form
, а не , поэтому вы отображаете это как: Form
{{ form.as_p }}
Примечание: Хотя это и не обязательно, обычно URL пишутся в кебабном регистре, так:
path('assessment-scores/<int:pk>/', assessmentEntry.as_view(), name='assessmentScores')