我在处理布尔查询集时遇到了麻烦。
models.py:
class Profile(models.Model):
user = models.OneToOneField(User, related_name='profile', primary_key=True)
firstConnexion = models.BooleanField(default=True)
views.py
firstConnexion = Profile.objects.filter(user=request.user).values('firstConnexion')
if firstConnexion:
Profile.objects.filter(user_id=user_id.id).update(firstConnexion=False)
return redirect('/one/')
else:
return redirect('/two/')
问题是,即使Profile
更新为False
怎么样?
答案 0 :(得分:1)
原因是您使用的.values()
返回布尔值列表。在您的情况下,它将返回此
[False]
因此,以下将评估为True:
if [False]
因为列表中有东西。
尝试以下方法:
if request.user.profile.firstConnexion:
...
希望它有所帮助!