def get_queryset(self):
return super().get_queryset() \
.annotate(ticket_count=models.Sum(
models.Case(
models.When(
orderitem__order__refunded=True,
then=0
),
models.When(
orderitem__order__billed_total='',
then=0
),
models.When(
orderitem__order__billed_total__isnull=True,
then=0
),
default=1,
output_field=models.IntegerField(),
))) \
.annotate(sold_out=models.Case(
models.When(
ticket_count__lt=F('capacity'),
then=models.Value(False),
),
default=True,
output_field=models.BooleanField(),
))
评论列表
文章目录