2011-03-23 66 views
1

我使用Django的消息框架,我在那里被模板显示两次我的消息很奇怪的问题,即使{{消息|长度}}为1Django的消息两次

我鉴于

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 %} 

任何想法?

+0

将'{{message.count}}'更改为'{{messages.count}}'。你有相同的输出吗? – DTing 2011-03-23 22:01:06

回答

2

原来这是一个模板继承问题。仔细检查并确保您在两个不同的模板中没有相同的块。

+0

谢谢!这帮助我修复了一个长期存在的bug,显而易见 – bharling 2016-09-08 14:37:41