Подтвердить что ты не робот

(Django) Невозможно назначить "u'1": "StaffProfile.user" должен быть экземпляром "Пользователь"

У меня есть модель, как показано ниже:

class StaffProfile(models.Model):
    user = models.ForeignKey(User)
    maas = models.FloatField()
    maas_gunu = models.CharField(max_length=5)

Когда я пытаюсь вставить данные с помощью кода, как показано ниже:

staffprofilesay = StaffProfile.objects.filter(user = user_id).count()

     if staffprofilesay > 0:
        staffprofile = StaffProfile.objects.get(user = user_id)
     else:    
        staffprofile = StaffProfile()

     staffprofile.user = user_id
     staffprofile.maas = calisan_formu.cleaned_data["maas"]
     staffprofile.maas_gunu = calisan_formu.cleaned_data["maas_gunu"]
     staffprofile.save()

Я получаю сообщение об ошибке:

Cannot assign "u'1'": "StaffProfile.user" must be a "User" instance.

Что я должен делать?

PS: Я использую модель пользователя Django

4b9b3361

Ответ 1

Вам нужно назначить объект User, например.

from django.contrib.auth.models import User
user = User.objects.get(id=user_id)

staffprofile.user = user

Ответ 2

user должен быть экземпляром модели user, а не объектом unicode (что вы передаете ему).