我想让所有拥有至少一门科目的教师。目前我正在使用......
user = users.objects.all().order_by('-karma')[:100]
因为没有相关科目的人是学生。
这是我的 models.py
class subjects(models.Model):
id_user = models.IntegerField(db_column='ID_user') # Field name made lowercase.
s = models.CharField(max_length=90)
def __unicode__(self):
return self.s
class Meta:
db_table = 'subjects'
class users(models.Model):
email = models.EmailField(max_length=160)
nick = models.CharField(unique=True, max_length=60)
karma = models.IntegerField(max_length=11)
pass_field = models.CharField(db_column='pass', max_length=160)
答案 0 :(得分:1)
一种选择是分两步完成:
在values_list()
的帮助下从主题模型中获取id_user
列表:
user_ids = subjects.objects.values_list('id_user', flat=True).distinct()
使用__in
在id_user
列表中获取所有用户:
print users.objects.filter(pk__in=user_ids)
此外,由于模型不相关,您可以制作一个raw
query,它可以一次完成相同的操作。