【发布时间】:2016-04-13 14:52:04
【问题描述】:
为什么会出现这个异常?
Traceback (most recent call last):
File "/path1/myapp-isu/myapp_isu/tests/unit/views/test_view_isu.py", line 8, in <module>
from myapp_isu.search_form import ISUSearchForm
File "/path1/myapp-isu/myapp_isu/search_form.py", line 87, in <module>
class ISUSearchForm(forms.Form):
File "/path1/myapp-isu/myapp_isu/search_form.py", line 108, in ISUSearchForm
foo_filter=forms.ModelChoiceField(FooFilter.objects.all(), label=format_html('<a href="%s">%s</a>', reverse_lazy('foo-filter'), FooFilter._meta.verbose_name))
File "/path1/dt/dt/utils/templateutils.py", line 127, in reverse
return urlresolvers.reverse(*args, **kwargs)
File "/path1/dt/dt/utils/urlresolverutils.py", line 49, in patched_reverse
base_url = orig_reverse(viewname, urlconf=urlconf, args=args, kwargs=kwargs, prefix=prefix, current_app=current_app)
File "/path2/django/core/urlresolvers.py", line 578, in reverse
return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/path2/django/core/urlresolvers.py", line 432, in _reverse_with_prefix
self._populate()
File "/path2/django/core/urlresolvers.py", line 284, in _populate
for pattern in reversed(self.url_patterns):
File "/path2/django/core/urlresolvers.py", line 401, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/path2/django/core/urlresolvers.py", line 395, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/path1/myapp-eins/myapp_eins/etc/rooturls.py", line 13, in <module>
admin.autodiscover()
File "/path2/django/contrib/admin/__init__.py", line 24, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/path2/django/utils/module_loading.py", line 67, in autodiscover_modules
for app_config in apps.get_app_configs():
File "/path2/django/apps/registry.py", line 137, in get_app_configs
self.check_apps_ready()
File "/path2/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
只有在我通过 PyCharm 调用 unittest 时才会发生这种情况,而不是在我在 shell 上使用 py.test 时发生。
我猜reverse_lazy() 在这里并不懒惰,因为它被用于format_html()。有什么办法可以偷懒format_html()?
版本:
- Django 1.8
- Pycharm 5.0.4
【问题讨论】:
-
不确定,但我怀疑 PyCharm 可能没有正确调用 Django 测试运行程序。 Django 需要做很多事情才能使测试正常运行,需要加载模型、解析 URL 模式等。因此,Django 使用管理命令
manage.py test来运行测试。 PyCharm 可能没有意识到这一点。 -
如果你通过 PyCharm 运行开发服务器,你会得到同样的错误吗?
-
另外你使用的是什么 PyCharm 和 Django 版本?谢谢。
-
@alecxe 我在问题中添加了版本信息。
标签: django