我是django的新人。我尝试使用简单的验证制作一个简单的电子邮件联系表单。 我得到了一个我无法解决的错误。 forms.py和views.py位于同一目录中(项目中没有内部应用程序)
forms.py
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
email = forms.EmailField(label='Your e-mail address')
message = forms.CharField(widget=forms.Textarea)
def clean_message(self):
new_message = self.cleaned_data['message']
num_words = len(new_message.spilt(' '))
if num_words < 4:
raise forms.ValidationError('Not enough words!')
return new_message
views.py
from django.shortcuts import render, render_to_response
from django.http import HttpResponseRedirect
from django.core.mail import send_mail
from forms import ContactForm
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
send_mail(
cd['subject'],
cd['message'],
cd.get('email', 'noreply@example.com'),
['siteowner@example.com'],
)
return HttpResponseRedirect('/contact/thankyou/')
else:
form = ContactForm()
return render(request, 'gadi_templates/contact.html', {'form': form})
def thankyou(request):
return render_to_response('gadi_templates/thankyou.html')
我的错误:
AttributeError at /contact/
'unicode' object has no attribute 'spilt'
Request Method: POST
Request URL: http://127.0.0.1:8000/contact/
Django Version: 1.7.1
Exception Type: AttributeError
Exception Value:
'unicode' object has no attribute 'spilt'
Exception Location: /Users/alonbond/django_apps/gadi/gadi/forms.py in clean_message, line 10
任何帮助?谢谢!
答案 0 :(得分:6)
你写了spilt
而不是split
。