Использование related_name во view-функции
У меня есть две модели в Джанго: Group и Post.
А также есть view-функция group_posts().
Мой код-ревьювер сказал мне сделать так: взять related_name 'group' из поля group класса Post и использовать его во view-функции в строке posts = Post.objects.filter(group=group).order_by('-pub_date')[:10] .
Ну и, собственно, вопросы:
- как правильно добавить related_name в функцию синтаксически? Как должна в итоге выглядеть строка кода?
- для чего вообще нужен этот related_name?
Я, честно, читала о том, что дает related_name, но если кто-то сможет объяснить прям совсем на пальцах, было бы здорово)
class Group(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=100, unique=True)
description = models.TextField()
def __str__(self):
return self.title
class Post(models.Model):
text = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='posts'
)
group = models.ForeignKey(Group, on_delete=models.CASCADE,
max_length=200, blank=True, null=True,
related_name='group')
def group_posts(request, slug):
group = get_object_or_404(Group, slug=slug)
posts = Post.objects.filter(group=group).order_by('-pub_date')[:10]
context = {
'group': group,
'posts': posts,
}
return render(request, 'posts/group_list.html', context)