Доступ к родительской модели из дочернего элемента поля 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)