當我在加載我的看法:本地主機: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