私は2つのモデルを持っています:
Base_Activity:
topics = models.ManyToManyField(Topic)
... some others
ユーザー_アクティビティ:
user = models.ForeignKey(settings.AUTH_USER_MODEL)
activity = models.ForeignKey(Base_Activity)
is_archived = models.BooleanField(default=False)
ここで、トピック XBase_activity
のすべての行を選択し、user =*current_user* およびis_archived = Trueに一致する行がある行を除外するクエリを実行したいと考えています。User_Activity
リレーションシップを後方にたどる方法についてDjangoのドキュメントを読んだことBase_Activity
がありますUser_Activity
. ただし、Django コンソールでこのメソッドをテストしても機能しません。
a = Base_Activity.objects.filter(topics__slug = topic)
a.user_activity_set.all()
AttributeError: 'InheritanceQuerySet' object has no attribute 'user_activity_set'
質問:クエリを実行する最善の方法は何ですか? これが実際に ForeignKey を逆方向にたどることによるものである場合、何が間違っているのでしょうか?