2014-11-05 42 views
1

我需要在單個頁面/網址中列出不同的模型。Django - 在一個頁面上列出許多不同的模型

#models.py 
class Service(models.Model): 
    author = models.ForeignKey(User, related_name="services") 
    title = models.CharField(max_length=255) 
    slug = models.SlugField(max_length=255, unique=True) 

    objects = ServiceQuerySet.as_manager() 

class Carousel(models.Model): 
    author = models.ForeignKey(User, related_name="carousels") 
    title = models.CharField(max_length=255) 
    content = models.TextField() 

    objects = CarouselQuerySet.as_manager() 

這是我的看法,這種方式被列在不同的頁面中,我試圖加入queryset,但沒有成功。

#views.py 

class ServiceListView(generic.ListView): 
    model = models.Service 
    queryset = models.Service.objects.published() 

class CarouselListView(generic.ListView): 
    model = models.Carousel 
    queryset = models.Carousel.objects.published() 

這是我的urls.py,這裏只列出那些服務。

urlpatterns = patterns('', 
    url(r'^$', views.ServiceListView.as_view(), name="service_list"), 
    url(r'^$', views.CarouselListView.as_view(), name="carousel_list"), 
) 

我需要這兩個列表出現在同一頁面上。我怎樣才能完成這項任務?

回答

1

如何通過上下文傳遞?

from .models import Service,Carousel 

class ServiceListView(generic.ListView): 
    model = Service 
    queryset = Service.objects.published() 

    def get_context_data(self, **kwargs): 
     context = super(ServiceListView, self).get_context_data(**kwargs) 
     context['carousel_list'] = Carousel.objects.published() 
     return context 
+0

非常感謝!它非常完美! – Hellington 2014-11-05 16:35:25

相關問題