13
我想使用基於Djangos類的通用視圖編寫一個CRUD應用程序。以下是我寫的用於在db中創建新用戶的代碼。Django中基於類的通用視圖的問題
from django.views.generic import CreateView
from django.contrib.auth.decorators import login_required
from django.contrib import messages
class UserCreateView(CreateView):
"""
Display and accept a new user to be created in db
"""
form_class = ProfileForm
template_name = 'userdb/profile_form.html'
success_url = '/organization/users/'
def post(self, request, *args, **kwargs):
messages.success(request, "Success", extra_tags='msg')
return super(UserCreateView, self).post(request, *args, **kwargs)
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(UserCreateView, self).dispatch(*args, **kwargs)
請注意,要添加要顯示給用戶的成功消息,我必須擴展post函數。我知道這不是一個好辦法,因爲當調用這個函數時,並不決定提交的表單是否包含有效數據。所以我的問題是,是否推薦將Djangos消息傳遞框架與基於類的通用視圖相結合的方式?
我以前試過實現'form_valid'函數,但它沒有工作,因爲我找不到訪問請求對象的方法。這很好,非常感謝你! – vimukthi
np!很高興它有幫助 –