django - 在基于类的视图中注册表格
问题描述
如何在基于类的视图(CreateView)中编写以下基于函数的视图
基于功能的视图
def register(request):
registered = False
if request.method == 'POST':
user_form = UserForm(data = request.POST)
profile_form = UserProfileInfoForm(data = request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
if 'profile_pic' in request.FILES:
profile.profile_pic = request.FILES['profile_pic']
profile.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request,'app_one/registration.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered })
基于类的视图
class register(CreateView):
model = userinfo, UserProfileInfo
form_class = Userinfoform, UserProfileInfoForm
解决方案
您可以覆盖该通用视图的发布功能。
例子:
def post(self, request, *args, **kwargs):
user_form = UserForm(data = request.POST)
profile_form = UserProfileInfoForm(data = request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
if 'profile_pic' in request.FILES:
profile.profile_pic = request.FILES['profile_pic']
profile.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request,'app_one/registration.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered })
如果您想检查视图的所有可用功能,可以转到其核心文件夹。
def post(self, request, *args, **kwargs):
如果您的请求是 POST,将被触发。
def get(self, request, *args, **kwargs):
如果您的请求已发布,将触发。
推荐阅读
- javascript - javascript 仅在 (window.innerWidth < x) 无法调整大小时运行函数
- python - 如何在 python Flask 中为 Logging 文件制作配置文件
- php - 在 PHP 中,我有一个包含 3 个值的数组。我想将这 3 个值存储在 3 个变量中
- c# - bot框架中语言错误的主动本地化formflow的第一次提示
- ios - ARKit 随机限制帧率到 30FPS
- angular - Angular 7 路由错误 base-href 被附加到路径
- c - 未初始化的全局变量对可执行文件大小的影响
- php - 我的表单中有 3 个日期范围选择器我想存储 00-00-0000 00-00-0000
- c - 具有无限多(未命名)参数的函数 - 如何正确访问这些参数?
- reactjs - 构建 react-app 的意外结果