2017-04-03 13 views
0

コンタクトフォームが 'contact.html'テンプレートに表示されない理由を解明しようとしています。私はPython 2.7でDjango 1.10を使用しています。私はいくつかの指導が必要です。Djangoモデルベースのコンタクトフォームがテンプレートに表示されない

models.py

from __future__ import unicode_literals 
from django.db import models 

class ContactForm(models.Model): 
    name = models.CharField(max_length=15) 
    email = models.EmailField(blank=True) 
    message = models.TextField() 
    pub_date = models.DateTimeField(auto_now=True) 

    def __unicode__(self): 
     return self.name 

forms.py

from django import forms 
from django.forms import ModelForm 
from .models import ContactForm 

class ContactForm(ModelForm): 
    class Meta: 
     model = ContactForm 
     fields = ['name', 'email', 'message'] 

views.py

from django.shortcuts import render, render_to_response 
from .forms import ContactForm, ReportItemForm, RegisterItemForm 
from django.template.loader import get_template 
from .models import ReportItem, RegisterItem, ContactForm 

def contact(request): 
    if request.method == "POST": 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      message = 'success' 
      form.save() 
     else: 
      message = 'fail' 
     return render(request, 'returnApp/contact.html', {'form': form},) 
    else: 
     return render(request, 'returnApp/contact.html', {'form': ContactForm()},) 

urls.py

from django.conf.urls import url 
from . import views 

app_name = 'returnApp' 
urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^contact/', views.contact, name='contact'), 
] 

contact.html

<div class="col-sm-6 col-sm-offset-3"> 
    {% if message %} 
    {% endif %} 
     <form role="form" action="" method="POST"> 
      {% csrf_token %} 
      {{ form.as_p }} 
       <button type="submit" class="btn btn-success">Submit</button> 
     </form> 
</div> 

出力

<div class="col-sm-6 col-sm-offset-3"> 

      <form role="form" action="" method="POST"> 
       <input type='hidden' name='csrfmiddlewaretoken' value='FpQ06fHpZTpMmweGuFlGd0I4euP6KEFU9lWhu7fRUdeKIWtobdG6ngTJUGUKWb9Q' /> 

       <button type="submit" class="btn btn-success">Submit</button> 
      </form> 
    </div> 
+0

でこのよう

forms.py

class ContactFormForm(ModelForm): 

は、plsは私達にあなたをurl.py示し、フォームのクラス定義を変更しました – Wilfried

答えて

0

は、問題を発見しました。私はmodels.pyとforms.pyに同じ名前をつけたので、Djangoを混乱させました。 はviews.py

from .forms import ContactFormForm 
関連する問題