У меня есть две модели:Джанго ошибка, когда после отношения отсталые
Base_Activity:
topics = models.ManyToManyField(Topic)
... some others
User_Activity:
user = models.ForeignKey(settings.AUTH_USER_MODEL)
activity = models.ForeignKey(Base_Activity)
is_archived = models.BooleanField(default=False)
Теперь я хочу, чтобы запросить Base_activity
, чтобы выбрать все строки с тему X и исключить любые строки, имеющие соответствующую строку в User_Activity
для user = * current_user * и is_archived = True.
Я прочитал документацию Django о том, как follow relationships backward, так как запрос Base_Activity
, но нужна информация от User_Activity
которая имеет ForeignKey к первому. Тем не менее, даже этот метод тестирования в Django консоли не работает:
a = Base_Activity.objects.filter(topics__slug = topic)
a.user_activity_set.all()
AttributeError: 'InheritanceQuerySet' object has no attribute 'user_activity_set'
Вопрос: Что такое лучший способ сделать мой запрос? Если это действительно, следуя за ForeignKey назад, то что я делаю неправильно?
Привет raacer, это именно тот ответ, на который я надеялся. 'user_activity_set.all()' теперь работает, но, как вы указываете, я должен сделать свой запрос, как ваша строка в обновлении. Благодарю. – jvannistelrooy