使用参数'()'和找不到关键字参数'{}来反向'login'

 nissunshine 发布于 2022-12-04 15:14

我想在我的Django视图中使用reverse()来避免使用硬代码,但是使用参数'()'和关键字参数'{}'找不到 " 反向'登录' ".这是我的代码:

URL配置:

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

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"))

这是我的追溯信息:

环境:

请求方法:GET
请求URL:http://127.0.0.1:8000/accounts/login/

Django版本:1.7
Python版本:2.7.5
已安装的应用程序:(
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib .messages',
'django.contrib.staticfiles',
'accounts')
已安装的中间件:(
'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')

回溯:在get_response 111中输入文件"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/core/handlers/base.py".response = wrapped_callback(request,*callback_args,**callback_kwargs )
登录11中的文件"/Users/feizhao/dropbox/nahan/accounts/views.py".返回渲染(请求,反向("登录"))文件"/Users/feizhao/.virtualenvs/nahan/lib/python2. 7/site-packages/django/core/urlresolvers.py"反向546. return iri_to_uri(resolver._reverse_with_prefix(view,prefix,*args,**kwargs))
file"/Users/feizhao/.virtualenvs/nahan/lib _reverse_with_prefix 463中的/python2.7/site-packages/django/core/urlresolvers.py"(lookup_view_s,args,kwargs,len(patterns),patterns))

异常类型:NoReverseMatch at/accounts/login/
Exception Value:反向'login',参数'()'和关键字参数'{}'未找到.尝试过0种模式:[]

我已经在stackoverflow中看到了一些类似的问题,比如这里,但没有帮助.

任何人都可以告诉我为什么这是错的?非常感谢!

1 个回答
  • 您已经为url指定了一个名称空间,因此您需要将其包含在您正在反转的名称中:

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

    2022-12-11 02:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有