Итак, я новичок в django, и я борюсь с документацией для представлений на основе классов. Не совсем уверен, что я делаю неправильно здесь, но в этом проблема:Сохранение данных модели с формы в django
Я заполняю соответствующие данные в форме, нажимаю submit, и я перенаправлен на тот же URL-адрес плюс некоторые параметры get
, которые соответствуют тому, что Я представил в форме. Ничего нового не добавлено в db. Я хотел бы создать новую строку Advertisement
в db, когда я нажму кнопку «Отправить».
У меня есть ModelForm следующим образом:
class NewAdForm(ModelForm):
class Meta:
model = Advertisement
exclude = ('campaign',)
def __init__(self, campaign, *args, **kwargs):
super(NewAdForm, self).__init__(*args, **kwargs)
self.campaign = campaign
У меня также есть FormView:
class AddAdvertView(FormView):
form_class = NewAdForm
template_name = 'advertisers/newad.html'
def get_form_kwargs(self):this
kwargs = super(AddAdvertView, self).get_form_kwargs()
kwargs['campaign'] = get_object_or_404(Campaign, id__exact = self.kwargs['campaign_id'])
return kwargs
def form_valid(self, form):
form.save(commit = True)
return super(AddAdvertView, self).form_valid(form)
А вот шаблон:
<form action="" method="get">
{{ form.as_p }}
<input type="submit" value="Submit"/>
</form>
Спасибо за помощь. Я использовал get, потому что я думал, что это проще. Просто для пояснения: GET отображает шаблон формы, а затем триггеры POST-шаблонов? –
Да, это нормальный шаблон в формах Django. –