在布尔字段上获取 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>
我不明白为什么这段代码不起作用。我有一个名为 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>