2010-08-30 8 views
0

Récemment, j'ai mis à jour mon serveur django. Aller de 1.2 à une nouvelle version. Les formes présentent un comportement étrange. Lorsqu'un champ est laissé vide, la page entière est simplement rafraîchie, plutôt que de montrer des erreurs comme je me souviens. Qu'est-ce qui pourrait causer ça? Que dois-je faire pour le réparer?Pourquoi mes formulaires ne retournent pas les erreurs de champs?

{%extends "baseAUTH.html" %} 
    {% block title %} 
    {{ title }} 
    {% endblock %} 


    {% block content %} 
{% load adminmedia %} 

<script type="text/javascript"> 
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}"; 
</script> 


<script type="text/javascript" src="/admin/jsi18n/"></script> 
<script type="text/javascript" src="/media/js/core.js"></script> 
<link rel="stylesheet" type="text/css" href="/media/css/forms.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/base.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/global.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/widgets.css"/> 

{{ form.media }} 


    <h1>{{ title }}</h1> 

    {% if form.errors %} 
     <p style="color: red;"> 
      Please correct the error{{ form.errors|pluralize }} below. 
     </p> 
    {% endif %} 

    <form action="" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
     <table valign=TOP> 
      {{ form.as_table }} 
     </table> 
     <input type="submit" value="Submit"> 
    </form> 
    {% endblock %} 
+1

Avez-vous essayé de vérifier et de sortir form.non_field_errors aussi? –

+1

Vous devrez afficher le code de la vue. –

Répondre

0

J'ai trouvé le problème. J'ai inversé quelques changements et j'ai trouvé le point où je l'ai cassé. Dans la fonction suivante j'ai essayé de faire abstraction

def FormToEmail(request, token, title, subject, message, reciever, attachlist): 

    if request.method == 'POST': 
     sender = AddSender(request) 
     reciever.append(sender) 

     form = token(request.POST, request.FILES) 

     if form.is_valid(): 
      mail = EmailMessage(subject, message, sender, reciever) 

      if len(attachlist) > 0: 
       for item in attachlist: 
        if form.cleaned_data[item]: 
         temp = request.FILES[item] 
         mail.attach(temp.name, temp.read(), \ 
          temp.content_type) 

      return SendIt(request, mail) 

ici pour

else: 
     form = token() 
    if request.user.is_authenticated(): 
     return render_to_response('FormTemplate.html', \ 
     {'form': form, 'title' : title}, \ 
     context_instance=RequestContext(request)) 
    else: 
     return HttpResponseRedirect('/Webtemplate/accounts/login') 

ici. Dans

return RenderFormForAuth(request, token(), title) 

avec la fonction définie comme

def RenderFormForAuth(request, form, title): 
    if request.user.is_authenticated(): 
     return render_to_response('FormTemplate.html', \ 
     {'form': form, 'title' : title}, \ 
     context_instance=RequestContext(request)) 
    else: 
     return HttpResponseRedirect('/Webtemplate/accounts/login') 

qui a tout cassé. (Je peux coller toute la fonction/comment elle s'appelle si besoin est, mais cela semble être une perte d'espace.)

Est-ce que quelqu'un sait pourquoi cela ne fonctionnerait pas?

+0

pouvez-vous afficher le code complet de la fonction qui gère la vue. Il n'est pas clair si vous remplissez les données POST dans la forme ou non – Ashok