我有一个djano模型:
class Expiration(models.Model):
UNIT_CHOICES = (
('M', 'Month'),
('W', 'Week')
)
unit = models.CharField(max_length = 1, choices= UNIT_CHOICES)
number_of_units = models.IntegerField(default=1)
offset = models.IntegerField(default=1)
class Profile(models.Model):
name = models.CharField(default="tmp", max_length=32, blank=True)
expiration_period = models.ForeignKey(Expiration, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
我需要做的是获取具有与之关联的最小数量的配置文件的Expiration实例,如果有重复,则返回其中一个.或者更好地说,如果exp是Expiration的实例,我正在寻找exp最小的exp.profile_set.count()
任何人有任何想法?
使用每个过期的配置文件数注释您的查询集.然后按注释字段排序.具有最少(或联合最少)配置文件的配置文件是查询集的第一个结果.
把它们放在一起,你有:
from django.db.models import Count
Expiration.objects.annotate(num_profiles=Count('profile')).order_by('num_profiles')[0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |