Доступ к родительской модели из дочернего элемента поля ManyToManyField (Django)

У меня есть models.py следующего содержания


class Comment(models.Model):
    auther_name = models.CharField(max_length=20, null=False, blank=False)
    comment_body = models.TextField(max_length=200, null=False, blank=False)

class Post(models.Model):
    comments = models.ManyToManyField(Comment)

Допустим, у меня есть экземпляр объекта комментария, id которого 2 и необработанное содержимое

Как получить id родительского поста, который содержит этот комментарий?

Использовать related_name. Небольшое изменение, добавляющее: related_name='posts': подумайте об этом как о "если мы начнем с противоположной стороны, какое имя будет использоваться" (оно всегда во множественном числе).

class Comment(models.Model):
    author_name = models.CharField(max_length=20, null=False, blank=False)
    comment_body = models.TextField(max_length=200, null=False, blank=False)

class Post(models.Model):
    comments = models.ManyToManyField(Comment, related_name='posts')

Теперь вы можете сделать:

for post in Comment.objects.get(pk=12).posts.all():
    print(post.xxx)
Вернуться на верх