(Django)无法分配"u'1":"StaffProfile.user"必须是"用户"实例

Ere*_*ğlu 17 python django

我有一个如下模型:

class StaffProfile(models.Model):
    user = models.ForeignKey(User)
    maas = models.FloatField()
    maas_gunu = models.CharField(max_length=5)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用如下代码插入数据时:

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()
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

Cannot assign "u'1'": "StaffProfile.user" must be a "User" instance.
Run Code Online (Sandbox Code Playgroud)

我应该做些什么?

PS:我正在使用Django的用户模型

Jam*_*esO 23

您需要分配一个User对象,例如

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

staffprofile.user = user
Run Code Online (Sandbox Code Playgroud)

  • 我有类似的问题(但不是与auth_user实例).我有一个id(很长),但无法将其分配给该字段.那么,在我分配之前,我将不得不往返数据库以获得一个选项?数据库上的外键有什么意义?它将检查并查看id是否有效.有没有解决这个问题?我是否真的要去往该地方取得选择只是为了得到我已经拥有的身份证? (3认同)

Bur*_*lid 5

user需要是User模型的实例,而不是unicode对象(这就是您要传递的对象)。