Не записываются данные в модель:

models.py

class game(models.Model):                     # игра
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length = 255)
    cost = models.IntegerField(null=False, default="-1")

class CustomUser(models.Model):                                   # Пользователь
    id = models.AutoField(primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    email = models.EmailField(max_length=255, null=True)
    nickname = models.CharField(max_length=255, null=True)

class rate(models.Model):                                   # Рейтинг
    id = models.AutoField(primary_key=True)
    id_user = models.ForeignKey(CustomUser, on_delete=models.DO_NOTHING)
    critic = models.BooleanField()
    score = models.IntegerField(null=False)
    id_game = models.ForeignKey(game, on_delete=models.DO_NOTHING)

views.py

def show_game(request, id):
    product = game.objects.get(id=id)
    current_user = User.objects.get(username=request.user.username)
    cuser = CustomUser.objects.get(user_id=current_user.id)
    ratee = rate.objects.get(id_game=product.id)

    form_add_rate = AddRate(request.POST)

    if request.method == "POST":
        print(request.POST)
        ratee.id_user = cuser.id
        ratee.critic = True
        ratee.score = request.POST.get('score')
        ratee.id_game = product.id
        ratee.save()

    return render(request, 'game.html', locals())

forms.py

class AddRate(forms.ModelForm):
    class Meta:
        model = rate
        fields = ["id_user", "critic", "score", "id_game"]

html-страничка

        <p>Отзыв к игре {{ product.name }} от {{ cuser.id }}: </p>
        <form method="POST">{% csrf_token %}
            <p>
                <label>Оценка</label><br>
                <input type="hidden" name="idid" value="{{ cuser.id }}">
                <input type="number" max="5" min="0" name="score" value="" />
            </p>
            <input type="submit" value="Сохранить" >
        </form>

Добрый день. Возникла проблема, что при записи данных в таблицу вылезает ошибка Cannot assign "1": "rate.id_user" must be a "CustomUser" instance. В чем проблема и как ее исправить? При выводе product.id и cuser.id выводятся соответствующие правильные id.

Вопрос решен. В views.py после проверки POST необходимо удалить ratee.id_user = cuser.id и ratee.id_game = product.id. Всем спасибо.

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