我需要自己向模特提出请求:
class Course(models.Model):
owner = models.ForeignKey(User, related_name='course', limit_choices_to={'userprofile__status': 'teacher'})
class Assignment (models.Model):
course = models.ForeignKey(Course, related_name='assignment')
admins = models.ManyToManyField(User, blank=True, null=True, limit_choices_to={'userprofile__status': 'teacher'})
我需要管理员包含没有所有者的所有用户(教师作为状态)。我尝试过Q对象但是没有成功......
答案 0 :(得分:2)
我不确定你是否可以在模型上做到这一点,但如果可以的话,可以用F
完成。类似的东西:
from django.db.models import Q, F
...
limit_choices_to=Q(userprofile__status='teacher') & ~Q(id=F('owner_id'))
您必须使用Q
,因为您无法使用字典模式断言否定。 ~
取消了第二个Q
,F('owner_id')
用于选择所有者的值。
就像我说的那样,我自己并没有尝试这样做,所以我不能说它是否会起作用。你只需要给它一个旋转,让我们知道。