(Джанго) Невозможно назначить «u'1»: «StaffProfile.user» должен быть экземпляром «User» - PullRequest
14 голосов
/ 08 марта 2012

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

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

Ответы [ 2 ]

20 голосов
/ 08 марта 2012

Вам необходимо назначить объект User, например,

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

staffprofile.user = user
4 голосов
/ 08 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...