[英]Django functional Based view to FormView
我的代碼是用基於功能的視圖編寫的,並且我了解了 Django 中內置的通用視圖。 我已經使用 Views、TemplateViews 進行了更改,但我卡在了 FormView 上。
基於功能的視圖:
def NewTeam(request):
form = NewTeamForm()
if request.method == 'POST':
form= NewTeamForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit = True)
return teams(request)
else:
print("Invalid Form")
return render(request,'teamform.html', {'form':form})
我試過的FormView
class NewTeam(FormView):
template_name = 'teamform.html'
form_class = NewTeamForm
success_url = '.'
def get_context_data(self,**kwargs):
context = super(NewTeam, self).get_context_data(**kwargs)
form = NewTeamForm()
if request.method == 'POST':
form= NewTeamForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit = True)
return teams(request)
else:
print("Invalid Form")
context['form'] =form
return context
我可以理解我需要在第一個 function 中獲取上下文並創建一個新的 function form_valid
。 我已經看過文檔和其他堆棧答案,但我無法理解如何驗證其中的表單。 提前致謝。
Django FormView 自動調用表單驗證
from django.http import HttpResponseRedirect
class NewTeam(FormView):
template_name = 'teamform.html'
form_class = NewTeamForm
success_url = '.'
def form_valid(self, form):
# Form is Valid
new_team = form.save(commit=True)
# Do whatever
return HttpResponseRedirect(self.get_success_url())
def form_invalid(self, form):
# Form is Invalid
print(form.errors)
return self.render_to_response(self.get_context_data(form=form))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.