2010-08-27 16 views
6

Tengo un formulario web de dJango de un modelo con alguna comprobación de errores (campo de correo electrónico válido, etc.). Todo funciona bien en varios navegadores Opera, Camino, Netscape, Safari e IE (excepto IE7).Formas de Django rompiendo en IE7

Todo lo que obtengo en IE7 es el mensaje 'Internet Explorer no puede mostrar la página web'. Si los formularios son válidos, los datos se escriben en la base de datos, así que creo que tiene algo que ver con la etapa de redireccionamiento.

He intentado varias cosas method = get y envío de formulario javascript pero nada parece detener IE7 que me da este error.

Cualquier ayuda sería apreciada.

forms.py plantilla

class NewElectiveForm(ModelForm): 
    host_country = forms.CharField(widget=forms.widgets.Select(choices=COUNTRIES) , label="Destination") 
    host_type  = forms.CharField(widget=forms.widgets.Select(choices=HOST_TYPE) , label="Location type")  
    host_name  = forms.CharField(max_length=256, label="Name of host institution") 
    host_street  = forms.CharField(required = False, max_length=100, label="Street") 
    host_city  = forms.CharField(required = False, max_length=100, label="City") 
    host_district = forms.CharField(required = False, max_length=100, label="District") 
    host_zipcode = forms.CharField(required = False, max_length=100, label="Zipcode") 
    host_supervisor = forms.CharField(required = False, max_length=256, label="Name of supervisor") 
    host_email  = forms.EmailField(required = False, max_length=100, label="Email") 
    host_fax  = forms.CharField(required = False, max_length=100, label="Fax.No.") 
    host_tel  = forms.CharField(required = False, max_length=100, label="Tel.No.") 
    start_date  = forms.DateField(widget=SelectDateWidget(),label="Elective start date") 
    end_date  = forms.DateField(widget=SelectDateWidget(),label="Elective end date") 
    subject   = forms.CharField(required = False, max_length=256,label="Subject") 
    reasons   = forms.CharField(required = False, widget=forms.widgets.Textarea(attrs={'class':'question'}), label="Please state briefly the reasons for this choice's location and subject") 
    outcomes  = forms.CharField(required = False, widget=forms.widgets.Textarea(attrs={'class':'question'}), label="Please give upto to 4 outcomes that you hope to achieve during this elective") 
    your_mobile  = forms.CharField(required = False, max_length=100, label="Please provide your mobile number if you are taking it with you")   
    insurance  = forms.BooleanField(required = False, label="Please confirm that you have arranged holiday insurance") 
    malpractice  = forms.BooleanField(required = False, label="Please confirm that you have medical malpractice cover") 
    groupinfo  = forms.CharField(required = False, label="If you planning your Elective in a group, please list your fellow students") 
    #risk_upload = forms.FileField(widget=AdminFileWidget, required = False, label='Upload a completed risk assesment form') 
    #evidence_upload = forms.FileField(widget=AdminFileWidget, required = False, label='Upload an evidence document') 


    class Meta: 
      model = ElectiveRecord   
      exclude = ('id', 'review','elective', 'status', 'edit_userid','modified') 

html:

<form enctype="multipart/form-data" method="post" class="uniForm" id="newform" > 
    {% for i in form %} 
    <div class="fieldwrapper {% for error in i.errors %} error {% endfor %}"> 
{% for error in i.errors %} 
    <b>{{error|escape}}</b><br/> 
{% endfor %} 
{{ i.label_tag }} : 
    {% if i.html_name == "reasons" or i.html_name == "outcomes" %} <br/> {% endif %} 
{{ i }} 
{% if i.html_name == "evidence_upload" %} <br/>latest file= xxx {% endif %} 
     {% if i.html_name == "risk_upload" %} <br/>latest file= xxx {% endif %} 
</div> 
    {%endfor%} 
    <div class="fieldWrapper"> <input type="submit" value="Save" NAME='save' > </div> 
</form> 

models.py

class ElectiveRecord(models.Model): 
     elective  = models.ForeignKey(Elective, null=True, blank=True) 
     status   = models.CharField(choices=ELECTIVE_STATUS_FLAGS, max_length=40) 
     edit_date  = models.DateTimeField(auto_now_add=True)   
     edit_userid  = models.CharField(max_length=12) 
     host_country = models.CharField(max_length=100, help_text="Destination") 
     host_type  = models.CharField(choices=HOST_TYPE, max_length=10, help_text="Location type")  
     host_name  = models.CharField(max_length=256, help_text="Name of host institution") 
     host_street  = models.CharField(max_length=100, help_text="Street") 
     host_city  = models.CharField(max_length=100, help_text="City") 
     host_district = models.CharField(max_length=100, help_text="District") 
     host_zipcode = models.CharField(max_length=100, help_text="Zipcode") 
     host_supervisor = models.CharField(max_length=256, help_text="Name of supervisor") 
     host_email  = models.CharField(max_length=100, help_text="Email") 
     host_fax  = models.CharField(max_length=100, blank=True, help_text="Fax.No.") 
     host_tel  = models.CharField(max_length=100, help_text="Tel.No.") 
     start_date  = models.DateField(help_text="Elective start date") 
     end_date  = models.DateField(help_text="Elective end date") 
     subject   = models.CharField(max_length=256,help_text="Tel.No.") 
     reasons   = models.TextField(help_text="Please state briefly the reasons for this choice's location and subject") 
     outcomes  = models.TextField(help_text="Please give upto to 4 outcomes that you hope to achieve during this elective") 
     your_mobile  = models.CharField(max_length=100, blank=True, help_text="Please provide your mobile number if you are taking it with you")   
     insurance  = models.BooleanField(default=False, help_text="Please confirm that you have arranged holiday insurance") 
     malpractice  = models.BooleanField(default=False, help_text="Please confirm that you have medical malpractice cover") 
     groupinfo  = models.CharField(max_length=256, blank=True, help_text="If you planning your Elective in a group, please list your fellow students") 
     modified  = models.DateTimeField(auto_now_add=True)   
     class Meta: 
       get_latest_by = 'modified'   
     def __unicode__(self): 
       return u"[%s] %s, %s " % (self.id,self.host_name,self.subject) 
+1

Deberá mostrar su código de vista antes de que alguien pueda ayudar de manera realista. Además, ¿qué dice el registro del servidor (apache o runserver) que está sucediendo? –

+0

Me he dado cuenta de que esto solo ocurre cuando se utiliza el servidor de desarrollo "runserver". Solo estoy usando la vista estándar auth_login. Django 1.2.3 – dlamotte

Respuesta

1

confirmar que es la etapa de redirección que está causando el problema mediante la sustitución de

HttpResponseRedirect(url) 

con

HttpResponse('<!DOCTYPE html><html><head><title>title</title></head><body><a href="%(url)s">%(url)s</a></body></html>' % {'url':url}) 

Si esto no hace, entonces el problema está ocurriendo antes de la redirección. Si lo hace, entonces el problema puede ser la redirección, o puede ser la página redirigida. Clic en el enlace. Si la siguiente página se muestra correctamente, es casi seguro que el problema es la redirección. De lo contrario, el problema está en la página redireccionada.