Задать вопрос
@san7667

Ошибка сохранения после переопределения метода POST в DJANGO?

Добрый день!
Прошу вас помочь!
после переопределения метода POST возникает ошибка указанная на скриншоте.
Если я убираю метод __init__ в forms.py то все сохраняет
В чем ошибка? Что нужно дописать в данной ситуации?

forms.py

class Konkurs_resultForm(ModelForm):
    class Meta:
        model = Konkurs_result
        fields = '__all__'

    def __init__(self, *args, **kwargs):  # если убираю этот метод то сохраняется
       konkurs = kwargs.pop('konkurs') 
       profile = kwargs.pop('profile') 
       konkurs_tour = kwargs.pop('konkurs_tour')
       konkurs_k = kwargs.pop('konkurs_k')
       konkurs_j = kwargs.pop('konkurs_j')
       super(Konkurs_resultForm, self).__init__(*args, **kwargs)
       tmp_konkursants = Konkurs_result.objects.filter(konkurs=konkurs,konkurs_tour=konkurs_tour,profile=profile).values_list('konkurs_k', flat=True)
       self.fields['konkurs_k'].queryset = Konkurs_k.objects.filter(konkurs_id=konkurs_k).exclude(out_game=True).exclude(id__in=tmp_konkursants) # exclude это условие NOT out_game=True 
       self.fields['konkurs_j'].queryset = Konkurs_j.objects.filter(konkurs_id=konkurs_j)


views.py

class konkurs_resultNew_record(LoginRequiredMixin,generic.CreateView):
    form_class = Konkurs_resultForm
    template_name = 'main/new_konkurs_result.html'
    context_object_name = 'konks_result'
    error=''

def get_form_kwargs(self): # вызов параметров формы Konkurs_resultForm и передача значений 
        try:
            kwargs = super(konkurs_resultNew_record, self).get_form_kwargs()
            profile = Profile.objects.get(user=self.request.user).id
            profile2 =  Konkurs_j.objects.get(profile=profile,konkurs=self.kwargs['pk2']).profile
            kwargs['konkurs'] = self.kwargs['pk2']
            kwargs['profile'] = profile2
            kwargs['konkurs_tour'] = self.kwargs['pk']
            kwargs['konkurs_k'] = self.kwargs['pk2']
            kwargs['konkurs_j'] = self.kwargs['pk2']
        except:
            kwargs = super(konkurs_resultNew_record, self).get_form_kwargs()
            profile = Profile.objects.get(user=self.request.user).id
            profile2 =  0
            kwargs['konkurs'] = self.kwargs['pk2']
            kwargs['profile'] = profile2
            kwargs['konkurs_tour'] = self.kwargs['pk']
            kwargs['konkurs_k'] = self.kwargs['pk2']
            kwargs['konkurs_j'] = self.kwargs['pk2']  
        return kwargs


    def post(self, request, *args, **kwargs):
        konkursk_id = request.POST.get('konkurs_k')
        outgame_id = request.POST.get('out_game')
        tmp_konkursk = Konkurs_k.objects.get(id=konkursk_id)
        tmp_konkursk.out_game = outgame_id
        self.form_class(request.POST).save()
        tmp_konkursk.save()
        return HttpResponseRedirect('/')
65379ccc80a66068508513.png
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
sergey_1990
@sergey_1990
1
А что сделать пытаетесь? То что сейчас это совсем как то изващенно, я даже не разобрал идею!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы