1

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

我试过用 self.expert、user___expert 和 customuser__expert 代替“专家”,但这些都不起作用。

视图.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

模型.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)
4

1 回答 1

4

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

class BrowseView(ListView):
    model = CustomUser
    template = 'expert_list.html'
    queryset = CustomUser.objects.filter(expert=True)
于 2018-12-20T20:25:16.917 回答