1

我需要自己对模型提出请求:

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 对象,但没有成功...

4

1 回答 1

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')选择所有者的值。

不过,就像我说的那样,我自己没有尝试过这样做,所以我不能说它是否会起作用。你只需要试一试,然后告诉我们。

于 2012-08-13T15:42:33.630 回答