Python 设置值。调试在Django测试中更改设置和url
我正在尝试为一些仅在调试中设置的URL设置测试。未设置它们,因为调试的值在我的设置文件和url.py之间显然更改为False。我以前从未遇到过这个问题,而且我不记得做过任何特别涉及调试值的事情 以下是我的URL.py:Python 设置值。调试在Django测试中更改设置和url,python,django,testing,Python,Django,Testing,我正在尝试为一些仅在调试中设置的URL设置测试。未设置它们,因为调试的值在我的设置文件和url.py之间显然更改为False。我以前从未遇到过这个问题,而且我不记得做过任何特别涉及调试值的事情 以下是我的URL.py: from django.conf import settings from my_views import dnfp print "settings.DEBUG in url: {}".format(settings.DEBUG) if settings.DEBUG: u
from django.conf import settings
from my_views import dnfp
print "settings.DEBUG in url: {}".format(settings.DEBUG)
if settings.DEBUG:
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"...
from django.conf import settings
from my_views import dnfp
settings.DEBUG = True
if settings.DEBUG:
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"...
这是我的设置文件:
DEBUG=True
print "DEBUG at the end of the settings: {}".format(DEBUG)
在我的测试中失败的内容:
reverse("debug_not_found_page"),
以下是测试的输出:
DEBUG at the end of the settings: True
settings.DEBUG in url: False
Creating test database for alias 'default'...
.E
(...)
NoReverseMatch: Reverse for 'debug_not_found_page' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
如果我自己在url.py中更改了该值,则会再次设置url,并且测试将使用此url.py:
from django.conf import settings
from my_views import dnfp
print "settings.DEBUG in url: {}".format(settings.DEBUG)
if settings.DEBUG:
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"...
from django.conf import settings
from my_views import dnfp
settings.DEBUG = True
if settings.DEBUG:
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"...
知道我的调试值在设置和URL之间更改的时间和原因吗?来自
不管配置文件中调试设置的值是多少,所有Django测试都以DEBUG=False运行。这是为了确保观察到的代码输出与生产设置中的输出相匹配
从
不管配置文件中调试设置的值是多少,所有Django测试都以DEBUG=False运行。这是为了确保观察到的代码输出与生产设置中的输出相匹配
代码的问题是在这一行之后设置了DEBUG=True
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"
原因是所有的URL都已附加到urlpatterns[],您在附加URL之后进行设置,并且在附加URL Django时,为了进行语法验证,实际上会将控制权转移到URL.py。这就是为什么在url.py中得到不同的值
在此行之前设置调试的值
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"
试试这个,希望它能起作用
您可以使用另一种方法来执行此操作,为所有这些类型的URL创建一个单独的应用程序,并且不要基于调试变量将该应用程序添加到已安装的应用程序中。代码的问题是您在这一行之后设置了debug=True
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"
原因是所有的URL都已附加到urlpatterns[],您在附加URL之后进行设置,并且在附加URL Django时,为了进行语法验证,实际上会将控制权转移到URL.py。这就是为什么在url.py中得到不同的值
在此行之前设置调试的值
urlpatterns += [url(r'^dnfp/$', dnfp, name="debug_not_found_page"
试试这个,希望它能起作用
您可以使用另一种方法来执行此操作,为所有这些类型的URL创建单独的应用程序,并且不要基于调试变量将应用程序添加到已安装的应用程序中。非常感谢!对于你们这些如何用谷歌搜索的人来说,下一步就是:非常感谢!对于你们这些如何用谷歌搜索的人来说,下一步是: