Django ForeignKey 用户认证
Django ForeignKey user authentication
我在 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)
我的错误在哪里?
不是使用过滤器,而是必须使用 .get 并且内部查询不正确,您应该执行以下操作:
p = systemEntry(user = user.userprofile)
p.save()
如果您愿意使用 userProfile.objects.filter(user.get_profile().username=myCredentials['username'])
你应该知道它不能这样做,而你应该这样做,
userProfile.objects.get(user__username=myCredentials['username'])
我在 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)
我的错误在哪里?
不是使用过滤器,而是必须使用 .get 并且内部查询不正确,您应该执行以下操作:
p = systemEntry(user = user.userprofile)
p.save()
如果您愿意使用 userProfile.objects.filter(user.get_profile().username=myCredentials['username'])
你应该知道它不能这样做,而你应该这样做,
userProfile.objects.get(user__username=myCredentials['username'])