Я работаю над сайтом django (мой первый), и я пытался добавить форму в контекст. Я не смог увидеть переменную в своем шаблоне, поэтому я упростил строковую переменную и не получил результата. Я не совсем понимаю, что я делаю неправильно, поэтому я надеялся получить помощь.Django 1.10 не может получить переменную в контексте
Вот вид:
from django.shortcuts import render
from django.http import HttpResponse
from django.template.context import RequestContext
from forms import LoginForm
# Create your views here.
def index(request):
return HttpResponse("Index page for Chefables portal")
def login(request):
lFormContext = RequestContext(request,{'mystring' : 'mystring'})
return render(request, 'login.html', lFormContext)
и вот шаблон:
{% extends 'base.html' %}
{% load i18n %}
{% load debug_tags %}
{% block container %}
<div class="content">
{% variables %}
{% if form.errors %}
<div class="alert alert-danger">
<p><strong>{% trans "Oh snap!" %}</strong> {% trans "Please enter a correct username and password. Note that both fields are case-sensitive." %}</p>
</div>
{% endif %}
<form action="{% url 'login' %}" method="post" class="form-horizontal" role="form">{% csrf_token %}
<legend><span class="col-sm-offset-1">{% trans 'Log in' %}</span></legend>
{% for field in form.fields %}
<p>iterating over form.fields </p>
{% include 'registration/form_field.html' %}
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">{% trans 'Log in' %}</button>
<button type="reset" class="btn">{% trans 'Cancel' %}</button>
</div>
</div>
</form>
<p><a href="{% url 'resetPassword' %}">{% trans "Reset my password" %}</a></p>
<script type="text/javascript">
$(function(){
$(".alert-message").alert();
$('#mainForm').submit(function(){
$('#submit').button('loading');
})
});
document.forms[1].elements[2].focus();
</script>
</div>
{% endblock %}
Я бы ожидать, что выход из {% переменных%}, чтобы показать некоторые ссылки на «MyString», что я добавил в представлении, но добавлена дополнительная переменная. Мне нужно это выяснить.
Вот выход из {% переменных%}
[ 'DEFAULT_MESSAGE_LEVELS', 'False', 'None', 'True', 'блок', u'csrf_token», 'сообщения', 'perms', u'request ',' user ', u'view']
Я не уверен, что именно неправильно - я правильно добавляю в контекстный словарь. Есть ли настройка, в которой я могу отсутствовать? Это кажется довольно простым.
Вот мой ШАБЛОНЫ установка:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR + '/portal/templates/portal'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Любая помощь или предложения больш оценены. Благодарю.
Daniel, спасибо, что ответил. Я попробовал ваше предложение, перейдя на диктофон, но все еще не вижу переменную в шаблоне. Я также описал объект запроса в шаблоне, но не вижу там переменной. Я думаю, что настройка отсутствует или неверна. Может ли так быть? ТИА. Bob –
Нет, никаких настроек нет. Вы уверены, что это правильный взгляд? Какой URL-адрес вы используете, и как выглядит ваш urls.py? Есть ли другие представления, которые отображают этот шаблон? (Честно говоря, ваш исходный код дал бы TypeError в любом случае.) –
Это единственное представление, которое я создал до сих пор:/portal/accounts/login и вот соответствующая строка из urls.py: url (r '^ accounts/login $', TemplateView.as_view (template_name = "login.html"), name = 'login'), –