тег внутренней формы:
{{ form.genre }}
<div id="books"></div>
<input type="submit" value="Submit" disabled="yes" />
тогда в javascript (jQuery отлично подходит для этого материала):
$('#{{ form.genre.id }}').change(function(){
$('#books').load('{% url get_genre_books %}', {genre: $(this).value()})
});
Вы должны создать представление, которое будет возвращать HTML, который должен быть помещен в этот div:
def get_genre_books(request):
genre = get_object_or_404(pk=request.GET.get('genre', None))
# here render a template or something that shouls be multiple selector of the books)
resp = ", ".join(genre.book_set.values_list('title', flat=True))
return HttpResponse(resp)
и, конечно, добавить это представление в urls.py.
Одно из многих решений :) не проверял его (написано только здесь, так что, возможно, небольшие ошибки где-то):)