メールを送信するためにdjangoに連絡フォームを作成していますが、フォームがウェブページに表示されていません。フォームオブジェクトがコンテキストに正しく渡されていない可能性があるため、問題がどこにあるのか分かりません。以下のコードは私がこれまで持っていたものです。フォームにフィールドが表示されず、理由がわかりません
from .forms import *
マイビュー
def email(request):
form = ContactForm()
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
email = form.cleaned_data['email']
first_name = form.cleaned_data['first_name']
message = form.cleaned_data['message']
try:
send_mail(first_name + ": " + subject, message, email,
['[email protected]'])
except BadHeaderError:
return HttpResponse("Invalid Header.")
return redirect('thankyou')
return render(request, 'Index-App/contact.html', {'form': form})
マイフォームクラス
class ContactForm(forms.Form):
subject = forms.CharField(required=True)
from_email = forms.EmailField(required=True)
first_name = forms.CharField(max_length=200, required=True)
message = forms.CharField(widget=forms.Textarea)
のURL
url(r'^contact/$', views.email, name='contact'),
マイテンプレート
{% block contact %}
<form method="POST" action="{% url 'Index-App:contact' %}">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn-success" value="Send"/>
</form>
{% endblock %}
、第二の接触はこれが機能しなかったのContactForm() – melb27