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辞書パターンで否定を主張できないため、使用する必要があります。は秒を~否定し、所有者の値を選択するために使用されます。QF('owner_id')

私が言ったように、私はこれを自分でやろうとしたことがないので、うまくいくかどうかはわかりません. 試してみて、私たちに知らせてください。

于 2012-08-13T15:42:33.630 に答える