Данные ForeignKey со стороны многие в Django
В предыдущем уроке мы связали
категории и посты через
ForeignKey. Напомним
структуру таблиц:
categories
- id
- name
posts
- id
- title
- category_id
Со стороны поста связь идет
через поле category.
Давайте получим пост и выведем
его заголовок:
from main.models import Post
post = Post.objects.get(id=1)
print(post.title)
Теперь через post.category
получим связанную категорию.
Это уже объект модели
Category, а не число
id:
post = Post.objects.get(id=1)
print(post.category)
print(post.category.name)
Давайте получим все посты и для каждого выведем название категории:
posts = Post.objects.all()
for post in posts:
print(post.title, post.category.name)
Можно и фильтровать посты по полям связанной категории. Для этого используют двойное подчеркивание:
posts = Post.objects.filter(category__name='News')
for post in posts:
print(post.title)
Получите один город и выведите название его страны.
Получите все города вместе с их странами.
Получите все города страны
с названием 'France'.