在布尔字段上获取 ListView 的查询集

Get queryset for a ListView on a boolean field

我不明白为什么这段代码不起作用。我有一个名为 CustomUser 的模型,其中包含一个名为 expert 的 BooleanField 字段。我想过滤用户以包括 expert = True 的用户。

我试过用 self.expert、user___expert 和 customuser__expert 代替 "expert" 和 none 这些都有效。

views.py:

from django.shortcuts import render
from django.views.generic import TemplateView, ListView
from users.models import CustomUser

class BrowseView(ListView):
    model = CustomUser
    template = 'expert_list.html'

def get_queryset(self):
    experts = CustomUser.objects.filter(expert == True)
    return experts

models.py:

class CustomUser(AbstractUser):
    objects = CustomUserManager()
    position = models.CharField(max_length =50, null=True, default='')
    bio = models.CharField(max_length=300, null=True, default='')
    expert = models.BooleanField(blank=True, default=False)

您可以通过在 .filter(..) 调用中传递一个 named 参数来进行过滤,例如:

class BrowseView(ListView):
    model = CustomUser
    template = 'expert_list.html'
    <b>queryset = CustomUser.objects.filter(expert=True)</b>