django AttributeError 'str'对象没有来自文件的属性'get' json

gdx19jrr  于 2023-05-08  发布在  Go
关注(0)|答案(2)|浏览(119)

我traying得到布尔值的关键,如果值是true没有问题,但如果值== false我得到错误AttributeError 'str' object has no attribute 'get'这个问题我面临了很多,即使当我从数据库中获取数据

主代码

if model.check_login(request):
        ad = User.objects.get(UID=login_user_uid(request))
        per = {"perto": False}
        status = per['perto']
        print(f'sdf {type(status)}')
        print(f'sdf {status}')
        if per['perto'] is True:
            return render(request, "users/add_user.html", {})
        else:
            return reverse('home')
    else:
        return redirect(reverse('login'))

输出

sdf <class 'bool'>
sdf False
Internal Server Error: /add_user
Traceback (most recent call last):
  File "C:\workstation\amon_env\envo\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "C:\workstation\amon_env\envo\Lib\site-packages\django\utils\deprecation.py", line 136, in __call__
    response = self.process_response(request, response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\workstation\amon_env\envo\Lib\site-packages\django\middleware\clickjacking.py", line 27, in process_response
    if response.get("X-Frame-Options") is not None:
       ^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'get'

错误img

y1aodyip

y1aodyip1#

你不能在视图中返回reverse的结果,因为那是一个str,而视图应该返回一个HttpResponse

if model.check_login(request):
    ad = User.objects.get(UID=login_user_uid(request))
    per = {"perto": False}
    status = per['perto']
    print(f'sdf {type(status)}')
    print(f'sdf {status}')
    if per['perto']:
        return render(request, 'users/add_user.html', {})
    else:
        return redirect('home')
else:
    return redirect('login')
jdzmm42g

jdzmm42g2#

从所提供的信息,我无法理解的主要问题,因为这个问题是最有可能位于add_user.html文件,但它的代码没有提供。从错误中,我可以告诉你。

  • 你得到一个字符串,让我们命名它,也许你期待字典或其他东西。现在,字符串s没有名为get的方法。

如果你想查看字符串的所有方法,只需打开terminal并运行python,然后输入dir(str()),你就可以看到你可以调用的所有可用的字符串方法。

  • 如果您不确定正在接收或尝试访问的数据类型,可以使用type(variable_name)查看实际数据并进行相应的调整。希望有帮助!

相关问题