如何获取True的booleanfield值



我正在构建一个BlogApp,并试图让所有配置文件的BooleanField的用户都为True。

我要做的事情:-

我制作了一个被禁止的用户的功能,并为每个用户制作了BooleanField,我正在尝试获取所有用户的配置文件的BooleanValue为True

型号.py

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,default='',unique=True)
block_users = models.BooleanField(choices=BLOCK_CHOISES,default=False)

问题

def block_users(request):
profile = request.user.profile
blocked = Profile.objects.filter(block_users=profile.block_users)
context = {'blocked':blocked}
return render(request, 'blocked.html', context)

当我运行此代码时,这只向我显示值为False的用户。但我希望用户的价值是True

我不知道怎么拿到。

提前感谢。

如有任何帮助,我们将不胜感激。

看起来您正在尝试按登录用户列出用户。我的意思是,如果登录的用户被阻止,它会列出被阻止的用户,如果没有,它会列出来没有被阻止的人。

而是:在您的models.py中,创建一个相关名称

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile_user",unique=True)
block_users = models.BooleanField(choices=BLOCK_CHOISES,default=False)

在views.py中,当你要做";request.user.profile_user.block_users";,它将为登录用户提供阻止状态。

现在,如果您想要被阻止的用户,请直接使用True进行筛选。

Profile.objects.filter(block_users=True)

最新更新