Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ORM特定查询_Python_Django_Database_Django Models_Django Orm - Fatal编程技术网

Python Django ORM特定查询

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

我有两款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, 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
)