我尝试通过这些模型在Django中进行复杂的查询。
class JobTitleStatus():
PENDING = 0
CONFIRMED = 1
BANNED
class Employer(models.Model):
name = models.CharField(max_length=1000)
isValidated = models.BooleanField(null=False)
eminence = models.IntegerField(blank=False,null=False,default=4)
class JobTitle(models.Model)
name = models.CharField(max_length=1000)
employer = models.ForeignKey(Employer,null=True,blank=True)
status = models.IntegerField(null=False, choices=JobTitleStatus)
我尝试根据confirmed
个职位的大小列出所有经过验证的雇主。
如果雇主没有Conmfirmed
个职位,那么它应该在列表的末尾。
我尝试做
eList = Employer.objects.filter(name__icontains=emp).filter(isValidated=True)
eList.filter(jobtitle__status=JobTitleStatus.CONFIRMED).annotate(jtt_count=Count('jobtitle')).order_by('-jtt_count','eminence')
这个查询做了我想要的或多或少,但正如您所期望的那样,没有Confirmed
职位的雇主被淘汰。
如何有效地在该查询的末尾添加Employers
?
谢谢
答案 0 :(得分:0)
eList.annotate(jtt_count=Count('jobtitle')).order_by('jobtitle__status','-jtt_count','eminence')
我认为应该有用。