2015-08-27 2 views
0

Я довольно новичок в 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 %} 

Таблица визуализирует прекрасно, но это сообщение просто не будет отображаться.

Спасибо.

+0

Обратите внимание, что имена классов [должны] (https://www.python.org/dev/peps/pep-0008/#naming-conventions) обычно используют соглашение CapWords. –

+0

@ErnestTen Я буду помнить об этом, спасибо. – viviwill

ответ

1

Вы можете 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 
+0

это работает как чемпион ~~ Я натолкнулся на функцию get_context_data, но не пытался, спасибо! – viviwill

2

Напишите только следующую линию или линию перемещения за пределами if.

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

Почему бы не увидеть?

потому что есть if состояние написано в шаблоне. {% if ssp %}

+0

Появляется текст «общий щелчок». Но переменная сообщения не проходит. – viviwill

+1

@viviwill: хорошо, можете ли вы записать код в коде? например '(request, 'ssp/sspTableView.html', {'message':" I am message "})' –

+0

Нет, не работает. – viviwill