首页 > 解决方案 > 当我试图在似乎时间放两个表格时我不能我不知道为什么一切都是好的和真实的

问题描述

/update_profile/ 处的 ValueError

无法更改配置文件,因为数据未验证。

请求方法:POST 请求 URL: http: //127.0.0.1 :8000/update_profile/ Django 版本:3.0.5 异常类型:ValueError 异常值:

无法更改配置文件,因为数据未验证。

异常位置:D:\project_4\my_project\lib\site-packages\django\forms\models.py 保存,第 454 行 Python 可执行文件:D:\project_4\my_project\Scripts\python.exe Python 版本:3.7.6 Python小路:

['C:\Users\pc\Desktop\template\project_4\my_project\src\project', 'D:\project_4\my_project\Scripts\python37.zip', 'c:\users\pc\appdata\local\programs \python\python37-32\DLLs', 'c:\users\pc\appdata\local\programs\python\python37-32\lib', 'c:\users\pc\appdata\local\programs\python\python37 -32'、'D:\project_4\my_project'、'D:\project_4\my_project\lib\site-packages']

服务器时间:2020 年 5 月 16 日星期六 14:51:34 +0000 Traceback 切换到复制粘贴视图

D:\project_4\my_project\lib\site-packages\django\core\handlers\exception.py in inner

                response = get_response(request)

     …
▶ Local vars
D:\project_4\my_project\lib\site-packages\django\core\handlers\base.py in _get_response

                    response = self.process_exception_by_middleware(e, request)

     …
▶ Local vars
D:\project_4\my_project\lib\site-packages\django\core\handlers\base.py in _get_response

                    response = wrapped_callback(request, *callback_args, **callback_kwargs)

     …
▶ Local vars
D:\project_4\my_project\lib\site-packages\django\contrib\auth\decorators.py in _wrapped_view

                    return view_func(request, *args, **kwargs)

     …
▶ Local vars
C:\Users\pc\Desktop\template\project_4\my_project\src\project\accounts\views.py in update_profile

                profile_form.save()

     …
▶ Local vars
D:\project_4\my_project\lib\site-packages\django\forms\models.py in save

                        'created' if self.instance._state.adding else 'changed',

     …
▶ Local vars 

这是我的观点:

@login_required()
def update_profile(request):
    if request.method == 'POST':
        user_form = UpdateUserForm(request.POST, instance=request.user)
        profile_form = UpdateProfileForm(request.POST, request.FILES, instance=request.user.profile)
        if user_form.is_valid and profile_form.is_valid:
            user_form.save()
            profile_form.save()
            return redirect('/')
    else:
        user_form = UpdateUserForm(instance=request.user)
        profile_form = UpdateProfileForm(instance=request.user.profile)

    context = {
        'user_form': user_form,
        'profile_form': profile_form,
    }
    return render(request, 'Update_profile.html', context)

标签: pythondjango

解决方案


您需要is_valid()在 views.py 文件中调用方法。添加括号以避免错误的验证。如果您忘记了它们,python 会获取被视为 True 值的函数。


推荐阅读