Python Django ORM特定查询
我有两款django车型:Python Django ORM特定查询,python,django,database,django-models,django-orm,Python,Django,Database,Django Models,Django Orm,我有两款django车型: class TelegramUser(models.Model): telegram_id = models.IntegerField() telegram_username = models.TextField(max_length=255, default=None, blank=True, null=True) first_name = models.TextField(max_length=255, default=None, blan
class TelegramUser(models.Model):
telegram_id = models.IntegerField()
telegram_username = models.TextField(max_length=255, default=None, blank=True, null=True)
first_name = models.TextField(max_length=255, default=None, blank=True, null=True)
last_name = models.TextField(max_length=255, default=None, blank=True, null=True)
has_blocked = models.BooleanField(default=False)
我需要得到所有用户,谁有少于3个指定的DutyDate。我可以用一个查询和如何查询吗?是。我们首先计算相关的
DutyDate
s的数量,然后根据该数量进行过滤:
from django.db.models import Count
TelegramUser.objects.annotate(
nduty=Count('dutydate')
).filter(
nduty__lt=3
)
从django.db.models导入计数
电报用户.objects.annotate(
nduty=计数('dutydate')
).过滤器(
nduty_uult=3
)
这里的过滤器使得nduty
小于3
。如果要保留同时具有三个相关的DutyDate
s的TelegramUser
s,可以使用
from django.db.models import Count
TelegramUser.objects.annotate(
nduty=Count('dutydate')
).filter(
nduty__lt=3
)