Джанго формы ломаются в IE7 - PullRequest
6 голосов
/ 27 августа 2010

Я получил веб-форму dJango от модели с некоторой проверкой ошибок (действительное поле электронной почты и т. Д.). Все отлично работает в различных браузерах Opera, Camino, Netscape, Safari и IE (кроме IE7).

Все, что я получаю в IE7, это сообщение «Internet Explorer не может отобразить веб-страницу». Если формы верны, данные записываются в базу данных, поэтому я думаю, что это связано со стадией перенаправления.

Я пробовал разные методы method = get и отправку форм javascript, но ничто не мешает IE7 выдать мне эту ошибку.

Любая помощь будет оценена.

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-шаблон:

<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 Ответ

1 голос
/ 27 августа 2010

Убедитесь, что это этап перенаправления, вызывающий проблему, заменив

HttpResponseRedirect(url)

на

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

Если это не отображается, то проблема возникает до перенаправления.Если это действительно делает, то проблема может быть перенаправлением, или это может быть перенаправленная страница.Нажмите на ссылку.Если следующая страница отображается правильно, проблема, скорее всего, заключается в самом перенаправлении.В противном случае проблема в перенаправленной странице.

...