@samuser
programmer

Как фильтровать по foreignkey?

Есть модель
class Author(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)

class Book(models.Model):
title = models.CharField(max_length=100)
language = models.CharField(max_length=2, choices=(('RU', 'Russian'), ('EN', 'English')))
author = models.ForeignKey(Author)
publisher = models.ManyToManyField(Publisher)
publication_date = models.DateField()

Authorсвязан по ForeignKey
В базе есть 3 автора и 9 книг связанные по 3 автору
Как мне сортировать по автору ? У какого автора сколько книг?

if 'publ' in request.GET and request.GET['publ']:
publ = request.GET['publ']
publi = Book.objects.filter(author=publ)

publ при из шаблона через selectbox

publi = Book.objects.filter(author=publ) Не работает как делать фильтр ?
  • Вопрос задан
  • 344 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
publi = Book.objects.filter(author_id = publ)
А конструкцию
if 'publ' in request.GET and request.GET['publ']:
publ = request.GET['publ']

#красивее заменить на
publ = request.GET.get('publ', None)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы