I have two forms in one template, but one of them doesn't have data to my database. Why does it happen and how to fix it?
When I fill out the Pack form and press "submit" the terminal shows that: "POST" /sklad HTTP/1.1" 200 9937 This data doesn't save to my database. When I fill out the Sklad form and press "submit" the terminal shows that: "POST" /sklad HTTP/1.1" 302 0 This data saves to my database fine. views.py class SkladCreateView(LoginRequiredMixin, CustomSuccessMessageMixin, CreateView): model = Sklad template_name = 'sklad.html' form_class = SkladForm success_url = reverse_lazy('sklad') success_msg = 'Материал сохранён' def get_context_data(self, **kwargs): kwargs['sklad_form'] = SkladForm kwargs['pack_form'] = PackForm kwargs['list_sklad'] = Sklad.objects.all().order_by('material') kwargs['list_pack'] = Pack.objects.all().order_by('name_pack') return super().get_context_data(**kwargs) def form_valid(self, form): self.object = form.save(commit=False) self.object.author = self.request.user self.object.save() return super().form_valid(form) models.py class Sklad(models.Model): author = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name='автор склада', null=True) material = models.CharField('название', max_length=200) unit = models.CharField('единица измерения', max_length=200) description = models.CharField('описание', max_length=200, null=True) price_buy = models.IntegerField('цена закупки', ) price_sell = models.IntegerField('цена продажи', ) amount = models.IntegerField('количество', default='0') def __str__(self): return self.material class Pack(models.Model): author = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name='автор упаковки', null=True) name_pack = models.CharField('название', max_length=100) price_pack = models.IntegerField('цена', ) def __str__(self): return self.name_pack forms.py class SkladForm(forms.ModelForm): class Meta: model = Sklad fields = ( 'material', 'unit', 'description', 'price_buy', 'price_sell', 'amount', ) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field in self.fields: self.fields[field].widget.attrs['class'] = 'form-control' class PackForm(forms.ModelForm): class Meta: model = Pack fields = ( 'name_pack', 'price_pack', ) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field in self.fields: self.fields[field].widget.attrs['class'] = 'form-control' -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/dc035331-23e6-483e-b6d1-ba8847e2abe6%40googlegroups.com.