0
我正在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' 的輸出, '假', '無', '真', '塊', 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',
],
},
},
]
任何幫助或建議,不勝感激。謝謝。
丹尼爾,謝謝你的回答。我已經嘗試過你的建議,改爲字典,但仍然沒有看到模板中的變量。我還描述了模板中的請求對象,但沒有在那裏看到變量。我會認爲設置丟失或不正確。情況會是這樣嗎? TIA。 Bob –
不,不涉及任何設置。你確定這是正確的觀點嗎?您使用的是哪個網址,以及您的urls.py的外觀如何?是否有任何其他視圖呈現該模板? (說實話,你原來的代碼本來會給TypeError的。) –
這是我迄今爲止創建的唯一視圖:/portal/accounts/login這裏是urls.py的對應行: url(r '^ accounts/login $',TemplateView.as_view(template_name =「login.html」),name ='login'), –