2013-07-01 2 views
0

Прежде всего я новичок в Django мире, поэтому, возможно, что я пытаюсь сделать, это с ума или это недоразумение понятий, так что здесь мы идем:Загрузка некоторых моделей в общий вид, нарушение концепций?

Как мы можем видеть, общий вид спасти нас много времени для того, что общие закономерности, которые мы используем все время в наших шаблонах, один из них является ListView, что получить список нашей модели в соответствии с набором атрибутов

from models import Post 
from django.views.generic import ListView, DetailView 


    class PostListView(ListView): 
     model = Post 
     template_name = 'blog/post_list.html' 

мы связываем нашу Post модели для макияжа а ListView набор post_list.html как наш шаблон, но ... что произойдет, когда в нашем шаблоне нам нужно показать несколько моделей? Представляя, что это показывает список сообщений, но мы хотим показать еще один список чего-то в этом шаблоне, для этого мы можем сделать это с помощью общих представлений? или мы должны делать это как обычно?

+0

Итак, вы хотите показать два списка двух разных объектов в одном представлении? –

+0

Например ... это возможно? – Enot

+0

Да, но не с общими представлениями (которые обычно работают только на одном объекте). –

ответ

2

Вы можете добавить дополнительную информацию, такую ​​как другой список несвязанных моделей в контекст, переданный шаблону. В Django documentation приведен пример ниже:

from django.views.generic import DetailView 
from books.models import Publisher, Book 

class PublisherDetail(DetailView): 

    model = Publisher 

    def get_context_data(self, **kwargs): 
     # Call the base implementation first to get a context 
     context = super(PublisherDetail, self).get_context_data(**kwargs) 
     # Add in a QuerySet of all the books 
     context['book_list'] = Book.objects.all() 
     return context 

 Смежные вопросы

  • Нет связанных вопросов^_^