【发布时间】:2020-12-16 07:34:20
【问题描述】:
我想在 ListView 中显示来自特定组的客户,但无法理解如何获取查询集
class CustomerList(ListView):
model = Customer
queryset = Customer.objects.filter(member__groups__name__in=['online', 'whatsapp'])
template_name = 'customer/customer_list.html'
models.py
class Customer(models.Model):
member = models.ForeignKey(User, verbose_name=_("Customer"), on_delete=models.CASCADE)
contact = models.ForeignKey(Contact, verbose_name=_("Contact"), on_delete=models.CASCADE, blank=True, null=True)
...
客户被添加到如下组中:
class AddUser(CreateView):
def post(self, request, *args, **kwargs):
form = UserForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
group, created = Group.objects.get_or_create(name='online')
user.groups.add(group)
user.save()
【问题讨论】:
-
__in需要两个扁平破折号而不是一个,这样可以解决问题吗? -
@voodoo-burger - 抱歉打错了,但效果不佳
-
related_name的使用在这里令人困惑。如果你删除它,运行迁移并使用user__groups__name__in? -
@voodoo-burger - 让我试试
标签: django usergroups