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 № 1Vous 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).