/ / (Django) Impossible d'assigner “u'1 '”: “StaffProfile.user” doit être une instance “User” - python, django

(Django) Impossible d'affecter «u'1 '»: «StaffProfile.user» doit être une instance «User» - python, django

J'ai un modèle comme ci-dessous:

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

Quand j'essaye d'insérer des données avec un code comme ci-dessous:

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()

Je reçois une erreur comme celle-ci:

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

Qu'est-ce que je suis supposé faire?

PS: J'utilise le modèle utilisateur de Django

Réponses:

16 pour la réponse № 1

Vous devez affecter un objet utilisateur, par exemple.

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

staffprofile.user = user

4 pour la réponse № 2

user doit être une instance de la User modèle, pas un objet unicode (ce que vous lui transmettez).