Переменная шаблона Django не отображается

#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 , в то время как ссылки на шаблон URL search_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)