Вы добавляете некоторые классы в раздел «Подробнее».
<div class="uk-margin-top uk-position-bottom uk-margin-medium-left uk-margin-bottom">
<a class="el-link uk-button uk-button-default" href="#" uk-scroll="">Read more</a>
</div>
Нет, и это было бы плохой идеей. Прямая ссылка на имя функции представления из шаблона приводит к чрезмерно тесной связи между слоем представления и слоем шаблона.
Здесь гораздо лучшим решением является система наследования шаблонов Django. Определите общий родительский шаблон с блоком для (небольшой) области, который необходимо изменить в версии каждого представления.
Это звучит как прекрасный пример универсального представления, которое вы можете настроить.
См. Следующие ресурсы:
Эти ссылки должны помочь вам упростить ваши представления и ваши шаблоны соответственно.
одно простое решение:
def view1(req):
viewname = "view1"
and pass this viewname to the template context
def view2(req):
viewname = "view2"
and pass this viewname to the template context
в шаблоне обращаются к имени представления как
{{viewname}}
, а также вы можете использовать это в сравнениях.
Почему бы не попытаться настроить cookie-файл сеанса, а затем прочитать cookie-файл из вашего шаблона.
в ваших представлениях установить cookie-файлы
def view1(request):
...
#set cookie
request.session["param"]="view1"
def view2(request):
request.session["param"]="view2"
then in your ONE template check something like..
{% ifequal request.session.param "view1" %}
... do stuff related to view1
{% endifequal %}
{% ifequal request.session.param "view2" %}
... do stuff related to "view2"
{% endifequal %}
Gath
Я работаю над этим для системы справочных страниц, где я хочу, чтобы каждый вид соответствовал справочной странице в моей cms с отображением страницы по умолчанию, если для этого вида не определена справочная страница. Я наткнулся на этот блог, где они используют контекстный процессор шаблона и некоторую магию python inspect, чтобы вывести имя представления и заполнить им контекст.