2010-08-27 8 views
6

Ich habe ein dJango Webformular von einem Modell mit einigen Fehlerprüfung (gültige E-Mail-Feld, etc). Alles funktioniert in verschiedenen Browsern Opera, Camino, Netscape, Safari und IE (außer IE7).Django Formen brechen in IE7

Alles, was ich in IE7 bekomme, ist die Meldung "Internet Explorer kann die Webseite nicht anzeigen". Wenn die Formulare gültig sind, werden die Daten in die Datenbank geschrieben, daher denke ich, dass es etwas mit der Redirect-Phase zu tun hat.

Ich habe verschiedene Dinge ausprobiert method = get und javascript form submission aber nichts scheint IE7 zu stoppen, mir diesen Fehler zu geben.

Jede Hilfe wäre willkommen.

forms.py

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-Vorlage:

<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

Sie müssen Ihren Ansichtscode anzeigen, bevor jemand realistisch helfen kann. Was passiert auch mit Ihrem Serverprotokoll (Apache oder Runserver)? –

+0

Ich habe festgestellt, dass dies nur passiert, wenn der Entwicklungsserver "runserver" verwendet wird. Ich benutze nur die Standardansicht auth_login. Django 1.2.3 – dlamotte

Antwort

1

bestätigen, dass es die Umleitung der Bühne ist, die das Problem verursacht durch

ersetzen

mit

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

Wenn dies nicht machen, dann ist das Problem vor der Umleitung geschieht. Wenn es rendern wird, kann das Problem die Umleitung sein, oder es kann die umgeleitete Seite sein. Klick auf den Link. Wenn die nächste Seite korrekt angezeigt wird, ist das Problem höchstwahrscheinlich die Weiterleitung selbst. Andernfalls ist das Problem in der umgeleiteten Seite.