Please remove

  if pack_form.is_valid():
            pack_form.instance = self.object
            pack_form.save()


And replace with print(pack_form)


Then let's see what it's printing in the console

On Tue, May 5, 2020, 8:30 PM Sergei Sokov <[email protected]> wrote:

> I have this error when I try save data for SkladForm, when I press submit
> Request Method: POST
> Request URL: http://192.168.0.249:8000/sklad
> Django Version: 3.0.5
> Exception Type: KeyError
> Exception Value:
>
> 'pack_form'
>
> Exception Location: /var/workspace/myp4/webprint/print/views.py in
> form_valid, line 362
> line 362 is       pack_form = context['pack_form']
>
> And the PackForm is empty, when I call it.
>
>
> 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['list_sklad'] = Sklad.objects.all().order_by('material')
>         kwargs['list_pack'] = Pack.objects.all().order_by('name_pack')
>         kwargs['list_hole'] = Hole.objects.all().order_by('name_hole')
>         context = super(SkladCreateView, self).get_context_data(**kwargs)
>         if self.request.POST:
>             context['pack_form'] = PackForm(self.request.POST)
>         else:
>             context['pack_form'] = PackForm()
>         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()
>
>         context = self.get_context_data()
>         pack_form = context['pack_form']
>         if pack_form.is_valid():
>             pack_form.instance = self.object
>             pack_form.save()
>         return super().form_valid(form)
>
>
>
>
> вторник, 5 мая 2020 г., 18:08:56 UTC+2 пользователь Sherif Adigun написал:
>>
>> you have two returns in get_Context_data. use only this
>>>
>>
>>
>> def get_context_data(self, **kwargs):
>>         context = super(SkladCreateView, self).get_context_data(**kwargs)
>>         if self.request.POST:
>>             context['pack_form'] = PackForm(self.request.POST)
>>         else:
>>             context['pack_form'] = PackForm()
>>         return super().get_context_data(**kwargs)
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Django users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/django-users/I_32m8lWd-g/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/b3bcc2cc-aa55-42b1-a322-769f177c1862%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/b3bcc2cc-aa55-42b1-a322-769f177c1862%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CACP0aXhV-aORoz-%2BA-yEc-%2BNBWBgyDyTQuX9kSYOffzgqKBSQw%40mail.gmail.com.

Reply via email to