Использование 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] .

Ну и, собственно, вопросы:

  1. как правильно добавить related_name в функцию синтаксически? Как должна в итоге выглядеть строка кода?
  2. для чего вообще нужен этот 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) 
Вернуться на верх