I'm using Django's message framework, and I have a very odd problem where my messages are being displayed twice in the template, even though {{messages|length}} is 1
My view
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.')
in my template:
{% block message%}
{{message.count}}
{% if messages %}
{{messages|length}}
{% for message in messages%}
<p class="{{message.tags}}">{{message}}</p>
{% endfor %}
{% endif %}
{% endblock %}
Any ideas?
Turns out this was a template inheritance issue. Double check and make sure you don't have the same block in two different templates.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With