首页 > 解决方案 > django中具有基于类的功能的页面标题

问题描述

我想创建我希望控制并偶尔从管理空间修改的页面标题+字幕,并将它们传递给具有基于类的模型的模板。

然而,在我在管理空间中输入输入后,我在模板中指定的变量没有提供值。那就是字段是空的。

我做错了什么?关于我应该用来传递模板的逻辑有什么建议吗?

模型.py:

class Page(models.Model):
    page_title = models.CharField(max_length=250)
    page_subtitle = models.TextField()

    def __str__(self):
        return self.self

模板:

<h3 class="title mb-0">{{page.page_title}}</h3>
<h6 class="title mb-0">{{page.page_title}}</h6>

视图:我尝试了不同的视图,但它们都不起作用。

模板视图:

class Page(TemplateView):
    template_name = 'painting_list.html'  # the template where I want to display the title

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['page'] = self.Page
        return context
    
#I also tried it with:#
       context['page'] = Page.objects.get(id=1)
       return context

详细视图:

class Page(generic.DetailView):
     model = Page
     context_object_name = 'page'
     template_name = 'painting_list.html'

标签: djangodjango-templatesdjango-class-based-views

解决方案


推荐阅读