DJANGO многие к одному
Мне нужна ваша помощь, это действительно элементарно. У меня есть две модели, Autor и Post с отношением многие к одному. У меня проблемы с получением данных на html странице. Я хочу вывести список всех постов для определенного Автора в FOR и кроме этого мне нужно вывести имя и фамилию Автора из FOR.
Я очень ценю вашу помощь.
class Autor(models.Model):
first_name = models.CharField(max_length=30, null=False, verbose_name='First Name')
last_name = models.CharField(max_length=30, null=False, verbose_name='Last Name')
def __str__(self):
return self.first_name
class Meta:
db_table = 'autor'
verbose_name = 'Autor'
verbose_name_plural = 'Autors'
ordering = ['id']
class Post(models.Model):
autor = models.ForeignKey(Autor, on_delete=models.CASCADE)
post = models.CharField(max_length=200, null=False, verbose_name='Post')
def __str__(self):
return self.post
class Meta:
db_table = 'post'
verbose_name = 'Post'
verbose_name_plural = 'Posts'
ordering = ['id'] ```
Поскольку вы не указываете атрибут related_name в определении ForeignKey, Django автоматически создает related_name, используя имя вашей модели с суффиксом _set, например, если sample_author является экземпляром Author, этот запрос возвращает все посты sample_author:
author_posts = sample_author.post_set.all()
тогда вы можете использовать все посты, которые существуют в результате этого запроса в цикле FOR.
for post in author_posts:
do something
вне этого цикла вы можете получить доступ к first_name и last_name экземпляра sample_author с помощью sample_author.first_name
и sample_author.last_name
.