class User(PermissionsMixin, AbstractBaseUser
):
name
= models.CharField
(max_length
=511, null
=True, blank
=True)
email
= models.EmailField
(unique
=True)
phone_number
= PossiblePhoneNumberField
(blank
=True, null
=True, default
=None)
addresses
= models.ManyToManyField
(Address, blank
=True)
is_staff
= models.BooleanField
(default
=False)
is_active
= models.BooleanField
(default
=True)
# is_featured = models.BooleanField(default=True)
note
= models.TextField
(null
=True, blank
=True)
date_joined
= models.DateTimeField
(default
=timezone.now, editable
=False)
default_shipping_address
= models.ForeignKey
(
Address, related_name
='+', null
=True, blank
=True,
on_delete
=models.SET_NULL
)
default_billing_address
= models.ForeignKey
(
Address, related_name
='+', null
=True, blank
=True,
on_delete
=models.SET_NULL
)
class Order(models.Model):
created = models.DateTimeField(
default=now, editable=False)
status = models.CharField(
max_length=32, default=OrderStatus.UNFULFILLED,
choices=OrderStatus.CHOICES)
buyer_user = models.ForeignKey(
settings.AUTH_USER_MODEL, blank=True, null=True, related_name='buyer_orders',
on_delete=models.SET_NULL)
vendor_users = models.ManyToManyField(
settings.AUTH_USER_MODEL, blank=True, related_name='vendor_orders')
order_updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='order_updated_user',
on_delete=models.SET_NULL,
blank=True, null=True)
is_ready_for_aadibd = models.BooleanField(default=False)
is_ready_for_shipment = models.BooleanField(default=False)
is_delivered = models.BooleanField(default=False)
seller_list = User.objects.select_related('vendor_details').prefetch_related('vendor_orders').filter(
groups__name="vendor",
vendor_details__isnull=False,
vendor_orders__is_delivered=True).order_by(
'vendor_details__company_name').distinct()
User.objects.select_related('vendor_details').prefetch_related('vendor_orders').filter(
groups__name="vendor",
vendor_details__isnull=False,
vendor_orders__is_delivered=True).order_by(
'vendor_details__company_name').distinct()
Date filter
seller_list = seller_list.filter(vendor_orders__created__date__gte=default_last_month_start_days,
vendor_orders__created__date__lte=default_last_month_last_days)
Also I'm using filter with exclude(is_delivered=False), but I didn't get my results.
I would like to filter (also using date, order id) my User who has delivery status only is_delivered=True. I want only users for who all of their deliveries are delivered. Like order id 2980 and It was associated with three sellers. I got the three sellers when I filtered. How can I do that?