Dark_Knight
@Dark_Knight
Game Dev

Как сделать выборку из модели с ForeignKey?

Здравствуйте.
Подскажите пожалуйста.
Есть такое код:
#model
class Publisher(models.Model):
    name            =   models.CharField(max_length = 30)
    address         =   models.CharField(max_length = 30)
    city            =   models.CharField(max_length = 30)
    state_province  =   models.CharField(max_length = 30)
    country         =   models.CharField(max_length = 30)
    website         =   models.URLField()

    def __unicode__(self):
        return self.name

class Book(models.Model):
    title               =   models.CharField(max_length = 100)
    authors             =   models.ManyToManyField(Author)
    publisher           =   models.ForeignKey(Publisher)
    publication_date    =   models.DateField()


#views
def search(request):
    if 'q' in request.GET and request.GET['q']:
        q             =    request.GET['q']
        publishers    =    Publisher.objects.filter(name__icontains = q)

        return render_to_response('notices/search_result.html', {'publishers' : publishers, 'query' : q})

    else:
        return HttpResponse("Enter the search")


#base.html
<form action="/notice/search/" method="get">
    <select name="q">
        {% if publishers %}
            {% for publisher in publishers %}
                <option>{{ publisher.name }}</option>
            {% endfor %}
        {% endif %}
    </select>
</form>

Данный код находит и выводит из базы данных существующие издательства.
Вопрос: подскажите пожалуйста, как мне нужно изменить код, чтоб при выборе в издательства и нажатии кнопки сабмит, список выводил книги, которые относятся к этому издательству?
Спасибо
  • Вопрос задан
  • 3678 просмотров
Пригласить эксперта
Ответы на вопрос 4
vaxXxa
@vaxXxa
Оффтоп: Почитайте www.python.org/dev/peps/pep-0008/ и сделайте код красивым, пожалуйста. Тогда намного проще понимать и читать код другим. Спасибо.
Ответ написан
@alz
Сделать форму с ModelChoiceField
Ответ написан
@odmin4eg
Во вьюхе что-то вроде такого
'post_list':Post.objects.filter(category__uid=uid).order_by('-id')
Ответ написан
FeNUMe
@FeNUMe
RTFM
выборка книг по имени издательства:
Book.objects.filter(publisher__name__exact=q)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы