Есть ли способ вставить поле по умолчанию в модель 'wincon' каждого пользователя или заблокировать поле формы на значение, основанное на другом поле формы?

Я создаю игровой трекер. Я бы хотел, чтобы если пользователь выбирает что-то кроме "Win", то поле wincon в форме не изменялось или устанавливалось в поле по умолчанию. Это нужно для того, чтобы пользователю было проще понять, что если он не выиграл, то не должен добавлять wincon. Также было бы неплохо, если бы у пользователя было пустое поле, в которое, если он не хочет вводить wincon, по умолчанию вводилось бы '------'

В идеале, если это победа, то поле wincon можно будет изменить.

Но если выбран убыток, то форма по умолчанию принимает значение null или предварительно заполненное поле типа '------'

models.py

class Profile(models.Model):
    user = models.ForeignKey(User,
                             max_length=10,
                             on_delete=models.CASCADE,
                             null=True)

    def __str__(self):
        return str(self.user)

class Wincon(models.Model):
    wincon = models.CharField(max_length=100,)

    user = models.ForeignKey(User,
                             max_length=10,
                             on_delete=models.CASCADE,
                             null=True)

    def __str__(self):
        return self.wincon

class Game(models.Model):
    # ForeignKeys
    user = models.ForeignKey(User,
                             max_length=10,
                             on_delete=models.CASCADE,
                             null=True)
    wincon = models.ForeignKey(Wincon,
                               on_delete=models.CASCADE,
                               null=True,
                               blank=True,)

views.py

@login_required(login_url='my-login')
def wincon(request):
    wincon_list = Wincon.objects.filter(user=request.user)
    user = User.objects.get(username=request.user)

    if request.method == "POST":
        wincon_form = WinconForm(request.POST)
        if wincon_form.is_valid():
            obj = wincon_form.save(commit=False)
            obj.user = request.user
            obj.save()
            return HttpResponseRedirect('/wincon')
    else:
        wincon_form = WinconForm()

    context = {'wincon_form': wincon_form, 'wincon_list': wincon_list, 'user': user}
    return render(request, 'gametracker_app/wincon.html', context=context)

forms.py

class GameForm(forms.ModelForm):
    def __init__(self, user, *args, **kwargs):
        super(GameForm, self).__init__(*args, **kwargs)

        # Set wincon list shown to only wincon from user
        user_wincon = Wincon.objects.filter(user=user)
        user_wincon_list = []
        for wincon in user_wincon:
            user_wincon_list.append((wincon.id, wincon.wincon))
        self.fields['wincon'].choices = user_wincon_list

    class Meta:
        model = Game
        exclude = {'date', 'time', 'user'}
        labels = {
            'num_players': '# of Players',
            'start_pos': 'Starting position',
            'mull': 'Starting hand',
            'outcome': 'Outcome',
            'wincon': 'Your Wincon',
        }

В своем файле forms.py я попытался добавить винкон по умолчанию, как показано ниже

class GameForm(forms.ModelForm):
    def __init__(self, user, *args, **kwargs):
        super(GameForm, self).__init__(*args, **kwargs)

        # Set wincon list shown to only wincon from user
        user_wincon = Wincon.objects.filter(user=user)
        user_wincon_list = [(0, '------')]
        for wincon in user_wincon:
            user_wincon_list.append((wincon.id, wincon.wincon))
        self.fields['wincon'].choices = user_wincon_list

Но это только создает значение по умолчанию '------', и если оставить его выбранным, то форма выдает ошибку

"Выберите правильный выбор. Этот выбор не входит в число доступных вариантов."

Вернуться на верх