次の問題があります。
私のモデルは、次のシナリオと同様に設定されています
class Membership(models.Model):
user = models.ForeignKey(User)
verified = models.BooleanField()
class ClubMembership(Membership):
club = models.ForeignKey(Club)
class ForumMembership(Membership):
forum = models.ForeignKey(Forum)
class Club(models.Model):
members = models.ManyToManyField(User, through='ClubMembership')
class Forum(models.Model):
members = models.ManyToManyField(User, through='ForumMembership')
(以前はメンバーシップを抽象クラスとして持っていましたが、これでは基本クラスを照会できませんでした。) 特定のユーザーに対してまだ検証されていないすべてのメンバーシップなどを照会したいと考えています。できます
memberships = Membership.objects.filter(verified=False)
これにより、verified=False のすべてのメンバーシップのリストが表示されます。ただし、1)メンバーシップがどのサブクラスであるかを確認する方法が見つかりません。2)サブクラスのタイプがわかっている場合でも、「クラブ」または「フォーラム」フィールドにアクセスできません。基本クラスにクエリを実行した後、基本クラスの型にアクセスする方法はありますか? また、サブクラスのフィールドにアクセスするにはどうすればよいですか?