【发布时间】:2017-12-12 02:09:43
【问题描述】:
我对 django 比较陌生。我正在尝试将 audiotracks 包与我的项目集成。我正在尝试集成 audiotracks 包,但出现 NoReverseMatch 错误。 文档说明..
将audiotracks 添加到您的应用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
编辑settings.py 并将audiotracks 添加到您的列表中
INSTALLED_APPS。然后同步你的数据库::
$ python manage.py syncdb
编辑你的 ROOT_URLCONF_ 并添加一段类似于::
的代码urlpatterns += patterns('',
# Here we mount the app under /music. Feel free to use something else
url("^music", include("audiotracks.urls")),
# Some URLs require a Django username
url("^(?P<username>[\w\._-]+)/music", include("audiotracks.urls")),
)
访问 URL /music/upload 上传您的第一首曲目。
当我尝试访问音乐/上传时发生错误..
这是完整的追溯。
环境:
请求方法:GET 请求网址:http://127.0.0.1:8000/music/upload
Django Version: 1.11.3
Python Version: 3.6.0
Installed Applications:
['account',
'music',
'audiotracks',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'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']
模板错误: 在模板 C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django_audiotracks-0.2.5-py3.6.egg\audiotracks\templates\audiotracks\base.html,错误在第 25 行 未找到带有参数 '('addemo1',)' 的 'user_index' 的反向操作。尝试了 2 种模式:['music/tracks/(?P\d)/?$', 'music/tracks$']
15 : .errorlist { color: red; list-style: none; display: inline; }
16 : </style>
17 : {% block extra_head %}{% endblock %}
18 : </head>
19 : <body>
20 :
21 : {% block subnav %}
22 : {% if user.is_authenticated %}
23 : <ul>
24 : <li><a href="{% url 'audiotracks' %}">{% trans 'Latest tracks' %}</a></li>
25 : <li><a href=" {% url 'user_index' user.username %} ">{% trans 'Your tracks' %}</a></li>
26 : <li><a href="{% url 'upload_track' %}">{% trans 'Upload track' %}</a></li>
27 : </ul>
28 : {% else %}
29 :
30 : {% endif %}
31 : {% endblock %}
32 :
33 : {% if messages %}
34 : <ul class="messages">
35 : {% for message in messages %}
追溯:
内部文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\exception.py” 41. response = get_response(request)
_legacy_get_response 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\base.py” 249. response = self._get_response(request)
_get_response 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\base.py” 187. response = self.process_exception_by_middleware(e, request)
_get_response 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\handlers\base.py” 185. response = Wrapped_callback(request, *callback_args, **callback_kwargs)
_wrapped_view 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\auth\decorators.py” 23. return view_func(request, *args, **kwargs)
wrapped_view 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\views\decorators\csrf.py” 58. return view_func(*args, **kwargs)
upload_track 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django_audiotracks-0.2.5-py3.6.egg\audiotracks\views.py” 109. return render(request, "audiotracks/new.html", {'form': form})
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\shortcuts.py” 30. content = loader.render_to_string(template_name, context, request, using=using)
render_to_string 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\loader.py” 68. return template.render(context, request)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\backends\django.py” 66. return self.template.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 207. return self._render(context)
_render 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 199. return self.nodelist.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 990. bit = node.render_annotated(context)
render_annotated 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 957. return self.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\loader_tags.py” 177. 返回已编译的_parent._render(context)
_render 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 199. return self.nodelist.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 990. bit = node.render_annotated(context)
render_annotated 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 957. return self.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\loader_tags.py” 72. 结果 = block.nodelist.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 990. bit = node.render_annotated(context)
render_annotated 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 957. return self.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\defaulttags.py” 322. 返回nodelist.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 990. bit = node.render_annotated(context)
render_annotated 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\base.py” 957. return self.render(context)
渲染中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\defaulttags.py” 458. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
文件 "C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\base.py" 反向 91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
_reverse_with_prefix 中的文件“C:\Users\Alexander\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\resolvers.py” 497. raise NoReverseMatch(msg)
异常类型:/music/upload 处的 NoReverseMatch 异常值:未找到带有参数 '('addemo1',)' 的 'user_index' 的反向。尝试了 2 种模式:['music/tracks/(?P\d)/?$', 'music/tracks$']
【问题讨论】:
-
您不可能遵循该指示;除此之外,
patterns在 Django 1.11 中不再存在。请出示您的完整 urls.py。 -
感谢您指出这一点。我添加了第二个网址,它起作用了..@DanielRoseman
标签: python django audio-player