#django #template-variables
Вопрос:
Поэтому я пытаюсь отобразить переменную шаблона django, но по какой-то причине она не отображается.
У меня есть следующий код:
Views.py
...
def get_search(request, *args, **kwargs):
context = {}
context = {"test":"abcde"}
return render(request, 'search.html', context)
...
Urls.py
urlpatterns = [
path("", home_view),
path("articles/", include("papers.urls")),
path("admin/", admin.site.urls),
path("search/", search_view),
path("submit/", submit_article_view, name="submit"),
] static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
search.html
{extends 'base.html'}
{% block content %}
<p> {{ test }} hi </p>
...
{% endblock %}
base.html
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" type ="text/css" href="{% static 'css/stylesheet.css' %}">
</head>
<header>
{% include 'navbar.html' %}
</header>
<body>
{% block content %}
{% endblock %}
</body>
<footer>
{% include 'footer.html' %}
</footer>
</html>
Теперь, всякий раз, когда я запускаю сервер и захожу на страницу поиска, все остальное выводится, но {{ test }}
не выводится. «Привет» действительно выводится. Я следил за каждым учебником и вопросом StackOverflow, но безрезультатно. У кого-нибудь есть какие-нибудь идеи о том, что может происходить?
Кроме того, новичок StackOverflow, дайте мне знать, если я сделал что-то не так в этом отношении :).
Комментарии:
1. Возможно, это не решит проблему, но вы отсутствуете
%
{extends 'base.html'}
, т. е. это должно быть{% extends 'base.html' %}
2. Ваше представление вызывается
get_search
, в то время как ссылки на шаблон URLsearch_view
— адреса-это может быть проблемой.search_view
Может быть, не передаетtest
переменную в ее контексте?3. Это было правильно в основном коде Абдул, извините за опечатку и Тай за помощь! Хотя проблема действительно заключалась в том, о чем упоминал ski1p, я использовал другое представление, которое также отображало search.html так что теперь я чувствую себя немного глупо… Спасибо вам обоим за помощь!
Ответ №1:
Проблема заключалась в том, что я отображал другое представление, которое также использовало search.html. Следовательно, почему все было одинаково, за исключением переменной шаблона. Теперь, когда контекст помещен в правильное представление, search_view отображается правильно.
search_view
def search_view(request, *args, **kwargs):
context = {}
context = {"test":"abcde"}
return render(request, 'search.html', context)