Как сделать запросы в Django со связанными таблицами?

Я пытаюсь создать функцию "сохраненные сообщения" на сайте. Я не могу понять, как создать запрос, который можно использовать для заполнения HTML-шаблона постами.

Вот мои модели:

class User(AbstractUser):
     pass

class Post(models.Model):
    title = models.CharField(max_length=200)
    description = models.CharField(max_length=500)

class SavedPost(models.Model):
     post = models.ForeignKey(Post, on_delete=models.CASCADE)
     user = models.ForeignKey (User, on_delete=models.CASCADE, null=True)

Мой .views выглядит следующим образом

def savedpostsview(request):
    posts = Post.objects.all
    savedposts = posts.savedpost_set(user = request.user)
    return render(request, "posts/savedposts.html",{
        'savedposts': savedposts
    })

Прямо сейчас я получаю ошибку "'function' object has no attribute 'savedpost_set'".

Я знаю, что делаю что-то неправильно синтаксически, но я вечно читаю документацию и не могу понять, что это такое. Есть ли у кого-нибудь понимание того, что я делаю неправильно?

во-первых здесь Post.objects.all all() является функцией и поэтому ошибка "'function' object has no attribute 'savedpost_set'"

Вы должны вызвать Post.objects.all() это вернет queryset.

Тогда вы пытаетесь выполнить обратный запрос на наборе запросов, что невозможно и приведет к ошибке.

Все, что тебе нужно, это Post.objects.filter(savedpost__user=request.user)

Вернуться на верх