Вы, наверное, ищете Джанго ModelForm
с.Вместо создания подкласса forms.Form
в вашем классе RSVPForm, вы должны создать подкласс forms.ModelForm
.Затем вы можете использовать функции класса формы модели, чтобы помочь вам достичь того, что вы хотите (скрыть некоторые поля и т. Д.).Ниже приведен пример:
class RSVPForm(forms.ModelForm):
class Meta:
model = Guest
fields = ('attending_status', 'number_of_guests', 'comment')
Это будет делать по существу то, что вы хотите, но вы должны будете не забыть предоставить аргумент ключевого слова instance
конструктору формы в вашей функции представления.Этот аргумент является экземпляром модели Guest
, которую вы будете обновлять с помощью формы.
form = RSVPForm(instance=guest_object)
Теперь вызовы метода form.save()
автоматически сохранят новые данные в этом экземпляре объекта Guest
.Вам просто нужно убедиться, что вы всегда передаете аргумент ключевого слова экземпляра, даже когда используете request.POST
:
form = RSVPForm(request.POST, instance=guest_object)