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!很高兴它有帮助 –