Я хочу отображать клиентов из определенных групп в ListView, не могу понять, как получить набор запросов
class CustomerList(ListView):
model = Customer
queryset = Customer.objects.filter(member__groups__name__in=['online', 'whatsapp'])
template_name = 'customer/customer_list.html'
модели.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
требует двух плоских дефисов вместо одного, это исправит? - person voodoo-burger   schedule 27.08.2020related_name
здесь сбивает с толку. Что, если вы удалите его, запустите миграции и используетеuser__groups__name__in
? - person voodoo-burger   schedule 27.08.2020queryset
возвращает только пользователей, тогда как я хочу, чтобы весь объект Customer, поскольку в шаблоне будут отображаться некоторые другие поля моделиCustomer
- person Laxmikant   schedule 27.08.2020Customer.objects.filter()
, оно может возвращать толькоCustomer
объектов... Если вам нужна дополнительная информация о пользователе, связанном с клиентом, вы можете получить ее с помощьюobject.customer.x
. Это очень сбивает с толку, что вы даете своей моделиCustomer
поле, которое также называетсяcustomer
. - person voodoo-burger   schedule 27.08.2020print(Customer.objects.filter(member__groups__name__in=['online', 'whatsapp']).count())
? - person JPG   schedule 27.08.2020online
группами. и это тоже не ошибка - person Laxmikant   schedule 27.08.2020