Форум сайта python.su
Народ, не ругайтесь, пожалуйста.
Я знаю, что решение более чем очевидно, и лежит где-то на поверхности. Но за Django я взялся совсем недавно, поэтому, похоже, что-то упускаю…
Словом, есть модель с примерно след. хар-ками:
class Publisher(models.Model): name = models.CharField(max_length = 256) class Book(models.Model): title = models.CharField(max_length = 256) pub_date = models.DateField() publisher = models.ForeignKey(Publisher)
class Index(ListView): model = Publisher template_name = 'books/index.html' paginate_by = 5 def get_queryset(self): day_list = Publisher.objects.all().order_by('name') return day_list
urlpatterns = patterns('daily.views', url(r'^$', Index.as_view()), )
Отредактировано Bidheim (Апрель 25, 2012 23:34:19)
Офлайн
Смотрите метод get_context_data класса ListView:
def get_context_data(self, **kwargs): context = super(Index, self).get_context_data(**kwargs) context["books"] = Book.objects.all().order_by('title') return context
Отредактировано truporez (Апрель 25, 2012 23:42:44)
Офлайн
Спасибо, это видимо, то, что надо. Но последний глупый - наверное, самый глупый… - вопрос. Как это все поместить в шаблон?
Дело в том, что когда я пишу
{% for p in publisher %} {{p.name}} {% for book in books %} {{book.title}} {%endfor %} {%endfor %}
Издатель: Имя Книга: A, B, C, D Издатель: Другое Имя Книга: A, B, C, D
Издатель: Имя Книга: A, B, Издатель: Другое Имя Книга: C, D
Офлайн
Первого варианта, описаного Вами, было вполне достаточно для этой задачи.
{% for p in publisher %} {{p.name}} {% for book in p.book_set.all %} {{book.title}} {%endfor %} {%endfor %}
Отредактировано Chern (Апрель 26, 2012 09:04:55)
Офлайн
Черт возьми, как, бывает, не замечаешь очевидных вещей. Гигантское спасибо.
Офлайн