2017-01-27 10 views
0

Я проходил через Django forms 'tutorial'. Как только я прочитал учебное пособие, я попытался изменить его в соответствии с моими потребностями и настроить его, чтобы изучить его Django. Я обнаружил, что всякий раз, когда я изменял форму, сайт не обновлялся. Я предполагаю, что это ошибка с моим кодом, но я не смог его найти.Django form.py не обновляется

# views.py 
def contact(request): 
    # if this is a POST request we need to process the form data 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = ContactForm(request.POST) 
     # check whether it's valid: 
     if form.is_valid(): 
      # process the data in form.cleaned_data as required 
      # ... 
      # redirect to a new URL: 
      return HttpResponseRedirect('/message_recived/') 

# forms.py 
from django import forms 
class ContactForm(forms.Form): 
    name = forms.CharField(label='Name', max_length=100) 
    email = forms.EmailField(label='Email', max_length=100) 
    message = forms.CharField(label='Message', max_length=500) 


# models.py 
from django.db import models 
class Contact(models.Model): 
    name = models.CharField(max_length=100) 
    email = models.CharField(max_length=100) 
    message = models.CharField(max_length=500) 

и вот contact.html шаблон:

#contact.html 
{% extends "BlogHome/headerAndFooter.html" %} 
{% block content %} 
<script> 
document.title = "Pike Dzurny - Contact" 
</script> 
<form action="/message_recived/" method="post"> 
    {% csrf_token %} 
    {{ form }} 
    <input type="submit" value="Submit" /> 
</form> 
{% endblock %} 

ли я что-то не так? Я попытался очистить кеш браузеров, используя новый браузер и, очевидно, обновив его.

ответ

1

Похоже, вы забыли, что render ответ на ваш взгляд. Также вам нужно включить форму в контекст для правильного отображения шаблона.

Try, чтобы изменить вид следующим образом:

def contact(request): 
    # if this is a POST request we need to process the form data 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = ContactForm(request.POST) 
     # check whether it's valid: 
     if form.is_valid(): 
      # process the data in form.cleaned_data as required 
      # ... 
      # redirect to a new URL: 
      return HttpResponseRedirect('/message_recived/') 
    else: 
     form = ContactForm()  
    return render(request, 'contact.html', {'form': form}) 
+0

Еще ничего): –

+1

@PikeD. hm, можете ли вы проверить, когда вы открываете страницу в браузере, если это правильный шаблон или нет? Вы видите форму на странице? – neverwalkaloner

+0

Хорошо, я просто посмотрел в свои шаблоны, и похоже, что есть дубликат моих шаблонов, кроме одного - 'contact.html' и другого' Contact.html', похоже, что я редактировал 'Contact.html' , Затем я копировал и вставлял HTML в 'contact.html', и кажется, что он до сих пор не передает форму вообще. –