Django: Как отобразить варианты голосования, соответствующие вошедшему в систему пользователю

Работаю над своим первым проектом Django. Я пытаюсь отобразить запись модели Result, которая была предварительно создана специально для вошедшего в систему пользователя и в которой этот пользователь/лицо, принимающее решение, может увидеть решение, за которое ему поручено проголосовать, а также соответствующие варианты, из которых он должен выбрать один.

Код, приведенный ниже, "работает" - но есть 2 проблемы, связанные со строкой forms.py:

result_instance = Result.objects.create(decision_id=22)    

Первая проблема заключается в том, что я непреднамеренно создаю новую запись в модели Result, используя свойство "create" - когда я просто хочу обновить существующую запись Result (т.е. запись зарегистрированного пользователя, содержащую его назначенное решение/выбор, которые, в свою очередь, являются внешними ключами из модели Decision).

Вторая проблема заключается в том, что параметр "decision_id"=22, очевидно, имеет статическое значение и должен быть изменен, чтобы динамически ссылаться на решение, которое было предварительно назначено вошедшему пользователю в его "личной" записи Result.

Я думаю, что мне нужно передать назначенное решение зарегистрированного пользователя из views.py в forms.py - но не уверен, как это сделать.

Надеюсь, есть решение, которое устранит обе проблемы. Спасибо!

models.py

class Decision(models.Model):
    custom_user = models.ForeignKey(CustomUser, default=None, null=True, 
                  on_delete=models.SET_NULL)
    summary = models.CharField(default="", verbose_name="Decision")

    option1 = models.CharField(default="")
    option2 = models.CharField(default="")

class Result(models.Model):
    custom_user = models.ForeignKey(CustomUser, default=None, null=True, 
                  on_delete=models.SET_NULL)
    decision = models.ForeignKey(Decision, default=None, null=True, 
               on_delete=models.SET_NULL)
    vote = models.CharField(default="", blank=True)

views.py

class VoteForm(LoginRequiredMixin, CreateView):
    model = Result
    form_class = VotingForm
    template_name = 'users/vote_form.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data()
        context['Result'] = Result.objects.all()

        * create variable for filtering on the html page
        context['user_specific'] = Result.objects.filter 
                                     (custom_user=self.request.user)
        return context

forms.py

result_instance = Result.objects.create(decision_id=22)
Vote = [('1', result_instance.decision.option1),
        ('2', result_instance.decision.option2),
       ]

class VotingForm(forms.ModelForm):
    class Meta:
    model = Result
    fields = ['decision', 'vote']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["vote"] = forms.ChoiceField(
                             widget=forms.RadioSelect(), choices=Vote, required=False)
Вернуться на верх