Django ForeignKey用户身份验证

2024-10-04 05:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django有一个扩展的用户模型。你知道吗

class userProfile(models.Model):
        user            = models.OneToOneField(User, related_name="profile")
        uniID           = models.CharField(max_length=6)

此外,我想在用户进入我的系统时使用以下方法登录:

class systemEntry(models.Model):
        user    = models.ForeignKey(userProfile)
        time    = models.DateTimeField(auto_now=True)

当用户登录时,我使用的是django身份验证模型:

tempUser = auth.authenticate(username = myCredentials['username'], password = myCredentials['password'])
p = systemEntry(user = userProfile.objects.filter(user.get_profile().username=myCredentials['username']))
p.save()

给定错误:

keyword can't be an expression (views.py, line 29)

我的错在哪里?你知道吗


Tags: django用户模型modelmodelsusernamepasswordprofile
1条回答
网友
1楼 · 发布于 2024-10-04 05:26:26

如果内部查询不正确,则必须使用.get而不是filter,您应该执行以下操作:

p = systemEntry(user = user.userprofile)
p.save()

如果您想使用userProfile.objects.filter(user.get_profile().username=myCredentials['username']) 你应该知道不能这样做,你应该这样做

userProfile.objects.get(user__username=myCredentials['username'])

相关问题 更多 >