Django模板在使用基于类的视图后没有显示大部分页面

时间:2013-08-24 15:25:52

标签: python django templates django-class-based-views

以下是相关观点:

class board_lv(generic.ListView):
    template_name = 'boardList.html'    
    context_object_name = 'notice_List'
    def get_queryset(self):
        self.Board = get_object_or_404(Board, name=self.args[0])
        if self.args[0] == 'all':           
            return Notice.objects.order_by('-posted_on')
        else:
            return Notice.objects.filter(board=self.Board)

    def get_context_data(self, **kwargs):
        context = super(board_lv, self).get_context_data(**kwargs)  
        context['c_board'] = self.Board;

这是html模板:

<h1>/b/ {{c_board}}</h1>
<ul>
{% for n in notice_list %}
    <li>
    {% if not n.isText %} 
        <h2><a href="{{ n.content }}">{{ n.title }}</a></h2>(/b/{{n.board}})<br>    
    {% else %}
        <h2><a href= "{% url 'detail' n.id %}">{{ n.title }}</a></h2>(/b/{{n.board}})
        <p>{{ n.content|slice:":100" }}</p>     
    {% endif %}
        <a href="{% url 'detail' n.id %}">Comments</a>{{n.thumbs_up}}   
    </li>
{% endfor %}
</ul>

当我导航到调用此视图的棋盘网址时,所有显示的内容都是左上角的第一个“/ b /”。我猜测上下文存在问题,但我不能指责它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您实际应该从get_context_data返回上下文!所以像这样改变它


def get_context_data(self, **kwargs):
        context = super(board_lv, self).get_context_data(**kwargs)  
        context['c_board'] = self.Board;
        return context