如何在 Django 中将变量传递给模板

How to pass a variable to template in Django

我是 django 的新手,经过几个小时的尝试,没有任何效果。

我有一个 views.py:

class sspView(generic.ListView):
    template_name = 'ssp/sspTableView.html'
    context_object_name = 'ssp'
    message = "yo, this is the message"

    def message(request):
        return render(request, 'ssp/sspTableView.html', {'message': message})

    def get_queryset(self):
        return googleData.objects.order_by('date')

我有一个template.html:

{% if ssp %}
<p>total click is: {{ message }}</p>
<table>
    {% for googleData in ssp %}
    <tr>
        <td>{{ googleData.date }}</td>
        <td>{{ googleData.account }}</td>
    </tr>
    {% endfor %}
</table>
{% endif %}

Table 呈现完美,但该消息不会显示。

谢谢。

只写下一行或将行移出 if 循环。

<p>total click is: {{ message }}</p>

为什么不可见?

因为模板里写了if条件。 {% if ssp %}

您可以add extra context使用get_context_data方法:

def get_context_data(self, **kwargs):
    context = super(sspView, self).get_context_data(**kwargs)
    context['message'] = 'Hello, context!'
    return context