当用户输入无效的电子邮件地址时,我在显示错误消息时遇到问题。
这是我的 forms.py 文件:
from django import forms
from .models import Contact
from django.db import models
class ContactForm(forms.ModelForm):
class Meta:
model = Contact
fields = [
'name',
'email',
'message',
]
def __init__(self, *args, **kwargs):
super(ContactForm, self).__init__(*args, **kwargs)
self.fields['name'].widget = forms.TextInput(attrs={
'placeholder': 'Name',
'required': True})
self.fields['email'].widget = forms.TextInput(attrs={
'placeholder': 'Email',
'required': True})
self.fields['message'].widget = forms.Textarea(attrs={
'placeholder': 'Message',
'rows': 6,
'required': True})
这是我的 models.py 文件
from django.db import models
from django import forms
from django.core.validators import EmailValidator
# Create your models here.
class Contact(models.Model):
name = models.CharField(max_length = 50)
email = models.EmailField(blank = False, max_length = 200)
message = models.TextField(blank = False)
这是我的views.py 文件:
from django.shortcuts import render, redirect, render_to_response
from django.http import HttpResponseRedirect
from .models import Contact
from .forms import ContactForm
from django.contrib import messages
# Create your views here.
def contact_create(request):
form = ContactForm(request.POST or None)
if form.is_valid():
instance = form.save(commit = False)
instance.save()
form = ContactForm()
messages.success(request, 'Your message was sent successfully. We will contact you shortly.')
return HttpResponseRedirect('/home/#contact')
context = {
"form": form,
}
return render(request, 'index.html', context)
最后是我在 index.html 文件中的表单
{% include "messages_display.html" %}
<form method="POST" action="">
{% csrf_token %}
<div class="row half">
<div class = "6u" > {{ form.name }} </div>
<div class = "6u" > {{ form.email }} </div>
</div>
<div class="row half">
<div class="12u"> {{ form.message }} </div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<input type="submit" class="button" value="Send Message" />
</ul>
</div>
</div>
</form>
所以,message.success 显示得很好,没有问题,我想,如果用户输入无效的电子邮件地址,在电子邮件字段下显示错误消息,就像 name 字段或 message 字段留空一样,它是显示“请填写此字段”。
谢谢您的帮助。