首页 > 解决方案 > Django 错误:请求没有属性用户

问题描述

我有一个标准表格,允许用户在系统中创建新客户。新的客户数据通过表单的 POST 请求传递,并使用 POST 数据执行存储过程。我还有其他几个功能以相同的方式运行,没有问题。

Traceback表明错误是从以下位置引发的django\contrib\auth\decorators.py

Traceback (most recent call last):
  File "...\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "...\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "...\venv\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "...\views.py", line 326, in new_customer
    new_customer(entityID, storeID, userID, lastName, firstName, phone, dlState, dlNum, dob, dlExp, adr1, adr2, city, state, zipc)
  File "...\venv\lib\site-packages\django\contrib\auth\decorators.py", line 20, in _wrapped_view
    if test_func(request.user):
AttributeError: 'int' object has no attribute 'user'

我在函数中添加了一些打印语句来验证请求的值。为什么首先是请求int

功能:

@login_required
def new_customer(request):
    if not validate_user_session(request.user.id):
        return redirect('newSession')
    if validate_user_session(request.user.id):
        print(request.user.id)
        if request.method == 'POST':
            entityID = Current_Session_VW.objects.filter(user_id=request.user.id)[0].entity_id
            storeID = Current_Session_VW.objects.filter(user_id=request.user.id)[0].store_id
            userID = request.user.id
            lastName = request.POST['Last_Name']
            firstName = request.POST['First_Name']
            phone = request.POST['Phone']
            email = request.POST['Email']
            dlState = request.POST['Driver_License_State']
            dlNum = request.POST['Driver_License_Number']
            dob = request.POST['Date_Of_Birth']
            dlExp = request.POST['Driver_License_Expiration_Date']
            adr1 = request.POST['Address_1']
            adr2 = request.POST['Address_2']
            city = request.POST['City']
            state = request.POST['State']
            zipc = request.POST['Zip']
            dob = sql_date(dob)
            dlExp = sql_date(dlExp)
            print(request)
            new_customer(entityID, storeID, userID, lastName, firstName, phone, dlState, dlNum, dob, dlExp, adr1, adr2, city, state, zipc)
            messages.success(request, 'Customer Successfully Registered')
            print(len(request))
            return redirect('Home')

标签: pythondjango

解决方案


推荐阅读