python - 反转 'login',参数 '()' 和关键字参数 '{}' 未找到

标签 python django

我想在我的 Django View 中使用 reverse() 来避免硬编码,但是得到“Reverse for 'login' with arguments '()' and keyword arguments '{}' not found” .这是我的代码:

URL配置:

urlpatterns = patterns(
    '',
    url(r'^accounts/', include('accounts.urls', namespace="accounts")),
    url(r'^admin/', include(admin.site.urls)),
)

网址.py

urlpatterns = patterns(
    '',
    url(r'^login/$', views.login, name='login'),
    url(r'^signup/$', views.signup, name='signup'),
)

views.py:

def login(request):
    return render(request, reverse("login"))


def signup(request):
    return render(request, reverse("signup"))

这是我的回溯信息:

Environment:

Request Method: GET
Request URL: http://127.0.0.1:8000/accounts/login/

Django Version: 1.7
Python Version: 2.7.5
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')

Traceback: File "/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/feizhao/dropbox/nahan/accounts/views.py" in login 11. return render(request, reverse("login")) File "/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse 546. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix 463. (lookup_view_s, args, kwargs, len(patterns), patterns))

Exception Type: NoReverseMatch at /accounts/login/
Exception Value: Reverse for 'login' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

我已经在 stackoverflow 中看到了一些类似的问题,例如 here ,但没有帮助。

谁能告诉我为什么错了?非常感谢!

最佳答案

您已经为 url 提供了命名空间,因此您需要将其包含在要反转的名称中:

def login(request):
    return render(request, reverse("accounts:login"))


def signup(request):
    return render(request, reverse("accounts:signup"))

关于python - 反转 'login',参数 '()' 和关键字参数 '{}' 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27560432/

相关文章:

python - 如何在 Tensorflow (python) 中随机选取和屏蔽张量的一部分

python - 如何在python Django项目中全局设置常量

python - Django 查询不匹配

python - Django:提供管理媒体文件

python - 西伯恩 : how to plot wind speed v direction on circular plot?

python - 根据条件修改数据框中的 2 列

python - 将 Python 方法转换为 C 扩展的好处?

django - 在 Django 中分组和排序

python - 数据库中的近似搜索

python - 在python ggplot中调整轴范围和刻度线