当我在加载我的看法:本地主机:8000 /扫描,它抛出一个问题:的Django的ModelForm提交到数据库
TypeError on views.py in Scan, line 27:
form = Scan() # Otherwise, set the form to unbound
任何想法,我做错了什么吗?我试图研究,但找不到答案。 (Django新手在这里)。谢谢你们!
Views.py
from django.http import HttpResponse
from Scanner.forms import SubmitDomain
def Scan(request):
if request.method == 'POST': # If the form has been submitted...
form = SubmitDomain(request.POST) # A form bound to the POST data
if form.is_valid(): # If form input passes initial validation...
form.cleaned_data['domainNm'] ## clean data in dictionary
try:
## check if Tld Table has submitted domain already
from Scanner.models import Tld
Tld.objects.get(domainNm=form.cleaned_data['domainNm'])
except Tld.DoesNotExist:
print "Would you like to create an account?"
## redirect to account creation
else:
print "Do you have an account? Please login."
## redirect to account login
else:
form = Scan() # Otherwise, set the form to unbound
Forms.py
from django.forms import ModelForm
from Scanner.models import Tld
class SubmitDomain(ModelForm):
class Meta:
model = Tld #Create form based off Model for Tld
fields = ['domainNm',]
def clean_domainName(self):
val = self.clean_domainName('domainNm')
return val
## This creates the form.
form = SubmitDomain()
因此,try {}和{}块应该放在表单中,而不是? – CodeTalk
是的。视图不是你想要的形式验证逻辑:) – Brandon
哈哈,好吧,正如我所说我仍然真的需要这整个MTV的东西,但我肯定了解了很多。那么,这是否被认为是服务器端验证,因为它是从模型的验证验证的?作为最佳实践是否需要额外的验证? – CodeTalk