无法在django中从类加载模板上的内容

时间:2014-08-08 19:05:52

标签: python django templates

article.html正在显示{% block homeblock %},但所有

{{entertainment.'suffix'}}中的

{% block articlecontent %}内容不是

显示。我无法理解为什么它在所有其他块中工作时在这个块中不起作用

这是我的views.py

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
from entertainment.models import Entertainmentblog

class ListView(generic.ListView):
   template_name = 'entertainment/index.html'
   context_object_name = 'latest_article_list'
   slug = None
   id = None

def get_queryset(self):
   return Entertainmentblog.objects.order_by('-posted')[:25]

class LatestArticleMixin(object):

def get_context_data(self, **kwargs):
    context = super(LatestArticleMixin, self).get_context_data(**kwargs)
    try:
        context['latest_article_list'] = Entertainmentblog.objects.order_by('-posted')[:25]
    except:
        pass
    return context  


class DetailView(LatestArticleMixin, generic.DetailView):
    model = Entertainmentblog
    template_name = 'entertainment/article.html'

这是我的模板article.html

{% extends "articlebase.html" %}

{% block articlecontent %}
{% if error_message %}<p><strong>{{ error_message }}</strong></p>
{% else %}
<div id="art-title">
<h1 class="art-title-main">{{ entertainment.title1 }}</h1>
</div>
<div class="date_time_header"><p>{{entertainment.posted}}<p></div>

<div class="articleBody" ><img src="/static/images/rf.jpg" alt="RF"  >
<div class="article-text">
{{ entertainment.body}}
{% endif %}
</div>
</div>
{% endblock %}

{% block homeblock %}
{% include "entertainment/article-index.html" %}
{% endblock %}

这是articlebase.html文件

<html lang="en">
<head></head>
<body>
{% block articlecontent %}{% endblock %}

<div class="articles">
<div class="container-more">
<h2 class="title">More</h2>
</div>
{% block homeblock %}{% endblock %}
</div>
</body>
</html>

我的问题是article.html正在显示{% block homeblock %},但所有

{{entertainment.'suffix'}}中的

{% block articlecontent %}内容不是

显示。由于img标签而正在显示图像,但文章的其余部分

不是。帮助?

1 个答案:

答案 0 :(得分:0)

我认为您没有将entertainment传递给上下文。 DetailView使用object作为模板中对象的名称。在模板中使用object代替entertainment或在DetailView类中设置context_object_name属性来评估'娱乐'。