2013-08-25 49 views
0

我想创建一个网页,表面两个独立的Django模型:如何在一个页面上显示两个Django模型?

class Client(models.Model): 
    name = models.CharField(max_length=100) 
    slug = AutoSlugField(populate_from='name', blank=True, unique=True) 
    order = models.IntegerField(editable=False, default=0) 

    class Meta: 
     ordering = ('order',) 
    def __unicode__(self): 
     return self.name 

class Press(models.Model): 
    title = models.CharField(max_length=50) 
    article = models.ImageField(upload_to = 'images') 

    def image_thumb(self): 
     if self.article: 
      return u'<img src="%s" height="125"/>' %self.article.url 
     else: 
      return "no image" 

    image_thumb.short_description = "article" 
    image_thumb.allow_tags = True 

    class Meta: 
     verbose_name_plural = "press" 

我不确定如何写我的Views.py查询集。我已经试过这样的事情...

class ClientView(generic.ListView):  
    template_name = 'clients.html' 
    context_object_name = 'client' 

    def queryset(request): 
     client_page = {'press': Press.objects.all(), 'client': Clients.objects.all()} 
     return client_page 
在我的urls.py

,然后这个...

url(r'^clients/', views.ClientView.as_view(), name = 'client_model'), 

我在堆栈中复读,我可以做到这一点,通过使用“get_extra_context “但是有人能告诉我这是怎么用的?

回答

2
class ClientView(generic.ListView): 
    # ... 

    def get_context_data(self, **kwargs): 
     context = super(ClientView, self).get_context_data(**kwargs) 
     context['press'] = Press.objects.all() 
     return context 
+0

谢谢,这工作! –

相关问题