Как сделать запросы в 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)