Показать часть шаблона, которая была предварительно отфильтрована
Я хотел бы узнать, каким наиболее питоническим способом можно получить следующий результат:
Допустим, у нас есть представление:
def myView(request):
context = {}
if something:
context['A'] = "Whatever"
else:
context['B'] = "Whatever"
return render(request, 'mypage.html', context)
В шаблоне, допустим, mypage.html у нас есть следующий сценарий:
{% if A %}
A code
{% else %}
B code
{% endif %}
<
Мой вопрос: если страница отображается с A code (например), можно ли через кнопку (при нажатии на эту кнопку) скрыть A code и показать B code вместо нее?
вам нужно передать оба контекста из представления.
Views.py:
def home(request):
A = "sample text A"
B = "sample text B"
return render(request, 'home.html', context={'A': A, 'B' : B})
Шаблон:
{% extends 'base.html' %}
{% block body_block %}
<p id="demo">
{{ A }}
</p>
<button id='myBtn' type='click'>click</button>
<script>
document.getElementById("myBtn").addEventListener("click", function() {
document.getElementById("demo").innerHTML = '{{ B }}';
});
</script>
{% endblock body_block %}