gpt4 book ai didi

python - View 在 Python 3 中不存在,但在 Python 2 中存在

转载 作者:行者123 更新时间:2023-11-30 23:02:25 24 4
gpt4 key购买 nike

我的views.py中有以下代码:

def view1(request):
# do view1-y things
return view_common(request, mode=True)

def view2(request):
# do view2-y things
return view_common(request, mode=False)

# not registered in urls.py
def view_common(request, mode):
return render(...)

这在 Python 3 下不起作用,导致“ View 不存在”错误。我该如何解决这个问题?

最佳答案

问题出在 Python 解释你的观点的方式上。

当执行 View 方法view1时,view_common仍然不在上下文中。因此出现了这个问题。将辅助方法移到 View 之前,使其位于上下文中。这将解决这个问题。

这是一个演示:

假设有一个 python 文件,test.py:

x = add_three(2, 3, 4)
print (x)

def add_three(x, y, z):
return plus(plus(x, y), z)

def plus(x, y):
return x + y

输出:

$:~$ python3 test.py 
Traceback (most recent call last):
File "test1.py", line 1, in <module>
x = add_three(2, 3, 4)
NameError: name 'add_three' is not defined

但是如果方法重新排列为:

def add_three(x, y, z):
return plus(plus(x, y), z)

def plus(x, y):
return x + y

x = add_three(2, 3, 4)
print (x)

输出符合预期。请注意,当从 add_third 调用时,plus 已经处于上下文中。因此它不会失败。

关于python - View 在 Python 3 中不存在,但在 Python 2 中存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com