Django 1.10.1
我的模板使用了强制性标题'上下文变量和可选的注释'模板变量。
渲染{{title}}可以正常工作,但渲染{{note}}会导致呈现完整的模板上下文(调试视图的种类?),如果在上下文中没有定义注释。
我希望那是'注意'未在上下文中定义它将呈现空字符串,并且如果已定义则呈现变量的内容。
示例:
urls.py:
url(r'^test1', views.testview1),
url(r'^test2', views.testview2),
views.py:
def testview1(request):
context = {'title': 'My title', 'note': 'my note'}
return render(request, 'test_template.html', context)
def testview2(request):
context = {'title': 'My title'}
return render(request, 'test_template.html', context)
test_template.html:
<h2>{{ title }}</h2>
{{ note }}
testview1按预期呈现:
我的头衔
我的笔记
testview2呈现此意外的上下文转储:
我的头衔
[{&#39; False&#39;:False,&#39; None&#39;:None,&#39; True&#39;:True}, {u&#39; csrf_token&#39;:&lt; SimpleLazyObject:u&#39; ho7MGwEQ86eMVLmHZbDPYE8VLCo3aTAUTM0OAf7Pvr5E8exMKYDqNoTjQGmieLPu&#39;&gt;, &#39;用户&#39;:&lt; SimpleLazyObject:&lt;用户:user1&gt;&gt;, &#39;烫发&#39;:&lt; django.contrib.auth.context_processors.PermWrapper对象位于0x113826f50&gt;, &#39; DEFAULT_MESSAGE_LEVELS&#39;:{&#39; DEBUG&#39;:10,&#39; INFO&#39;:20,&#39;警告&#39;:30,&#39; SUCCESS&#39 ;:25,&#39; ERROR&#39;:40}, &#39;消息&#39;:&lt; django.contrib.messages.storage.fallback.FallbackStorage对象位于0x11376b550&gt;, 你请求&#39;:&lt; WSGIRequest:GET&#39; / swingit / test2&#39;&gt;},{},{&#39; title&#39;:&#39;我的头衔&#39;}]
这是与模板相关的settings.py上下文:
DEBUG = True
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'templates', 'allauth')],
'APP_DIRS': True,
'OPTIONS': {
'string_if_invalid': '',
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
这些python模块位于虚拟环境中:
Babel==2.3.4
BulkSMS==0.3
cGraph==0.1
diff-match-patch==20121119
Django==1.10.1
django-allauth==0.27.0
django-bootstrap-ui==0.2.0
django-bootstrap3==7.0.1
django-crispy-forms==1.6.0
django-debug-toolbar==1.5
django-extensions==1.7.4
django-import-export==0.5.1
django-mailjet==0.2.0
django-phonenumber-field==1.1.0
django-tag-parser==2.1
django-utils==0.0.2
dominate==2.1.17
funcsigs==1.0.2
graphviz==0.5.1
mailjet-rest==1.2.2
MarkupSafe==0.23
mock==2.0.0
nose==1.3.7
oauthlib==2.0.0
pbr==1.10.0
phonenumberslite==7.7.2
pydot2==1.0.33
pygraphviz==1.3.1
pyparsing==2.1.10
python-openid==2.2.5
pytz==2016.7
requests==2.11.1
requests-oauthlib==0.6.2
six==1.10.0
sqlparse==0.2.1
tablib==0.11.2
答案 0 :(得分:0)
其中一个python包有本地更改。
所以这解决了这个问题:
pip install -r requirements.txt --ignore-installed