我正在使用 Django 的消息框架,我有一个非常奇怪的问题,即我的消息在模板中显示了两次,即使 {{messages|length}} 是 1
我的观点
if request.method == 'POST':
form = EditProfileForm(user=request.user, meta=meta, data=request.POST, files=request.FILES)
if form.is_valid():
user = form.save()
if 'uploaded_image' in request.FILES:
#TODO limit image size, check mime type
filename = request.FILES['uploaded_image']
destination = open('%s/%s' % (settings.FILE_UPLOAD_PATH, form.filename), 'wb+')
for chunk in filename.chunks():
destination.write(chunk)
destination.close()
print 'adding success message' #this is printed once
messages.success(request, 'Settings saved.') #this message is displayed twice
#messages.add_message(request, messages.SUCCESS, 'Yup. Saved.')
return HttpResponseRedirect(reverse('someview'))
else:
print form.errors
messages.error(request, 'Error updating settings. See errors below.')
在我的模板中:
{% block message%}
{{message.count}}
{% if messages %}
{{messages|length}}
{% for message in messages%}
<p class="{{message.tags}}">{{message}}</p>
{% endfor %}
{% endif %}
{% endblock %}
有什么想法吗?
最佳答案
原来这是一个模板继承问题。仔细检查并确保您在两个不同的模板中没有相同的 block 。
关于python - Django 消息显示两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401118/