Форма Django DetailView не сохраняет данные
У меня есть DetailView
, и мне нужно добавить форму для контакта с пользователем.
views.py
class ProductView(FormView, DetailView):
model = Product
template_name = 'product_detail.html'
form_class = NotificationForm
success_url = '/products/'
def post(self, request, *args, **kwargs):
return FormView.post(self, request, *args, **kwargs)
forms.py
class NotificationForm(ModelForm):
..."""some fields"""
class Meta:
model = Notification
fields = [
'usernameclient',
'emailclient',
'emailclient_confirmation',
'phoneclient',
'messageclient',
]
Модель Notification
- это место, где хранятся данные из этой формы
models.py
class Notification(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
..."""some fields"""
Я пока не понимаю, как django работает с формами. После отправки формы происходит корректная переадресация на success_url
, но в бд ничего не сохраняется... Чего не хватает?
А FormView
сохраняет форму не, а CreateView
сохраняет. Вы можете сохранить форму с помощью:
class ProductView(FormView, DetailView):
model = Product
template_name = 'product_detail.html'
form_class = NotificationForm
success_url = '/products/'
def form_valid(self, form):
form.save()
return super().form_valid(form)