django没有反向匹配

时间:2016-04-23 13:54:36

标签: python django

我使用django创建了一个项目,当我搜索这个网址时出现错误:

http://localhost:8000/user/signup/

项目的网址是:

urlpatterns = [
url(r'^user/', include("UserManager.urls")),
url(r'^movie/', include("MovieManager.urls")),
url(r'^home/', include("AdminManager.urls")),
url(r'^celebrity/', include("CelebrityManager.urls")),
url(r'^admin/', admin.site.urls),
]

和UserManager应用的网址是:

urlpatterns = [
url(r'^login/$', views.login_page, name='UserManager_login'),
url(r'^signup/$', views.signup_page, name='UserManager_signup'),
url(r'^showProfile/(?P<username>[a-zA-Z0-9]+)/$', views.view_profile, name='UserManager_view_profile'),
url(r'^search_celebrities/(?P<value>.*)/$', views.search_celebrity_sugggestion, name='UserManager_search_celebrity'),
url(r'^search_movies/(?P<value>.*)/$',views.show_suggestion_search_film,name='UserManager_search_movie'),
]

和MovieManger应用的网址是:

urlpatterns = [
url(r'^show/(?P<id>[0-9]+)/$', views.show_movie, name='MovieManager_show_movie'),
url(r'^show_awards/(?P<id>[0-9]+)/$', views.show_award_movie, name='MovieManager_show_awards'),
url(r'^show_top_100/$', views.get_100_best_movies, name='MovieManager_top_100'),
url(r'^sale_table/$',views.sale_table,name='MovieManager_sale_table'),
url(r'^search_festivals/$',views.search_festival_awards,name='MovieManager_search_festival'),
url(r'^all_crew/(?P<id>[0-9]+)/$', views.all_crew, name='MovieManager_all_crew'),
# url(r'^festival_awards/$',views.festival_awards,name='MovieManager_festival_awards'),

并且查看是:

def signup_page(request):
errors=""
if request.method == "POST":
    form = UserIMDBForms(request.POST)
    if form.is_valid():
        form.save()
    else:
        errors = ''
else:
    form = UserIMDBForms()
context = {'form':form}
return render(request, 'UserManager/signup.html', context)

和模板是:

{% extends 'base/base.html' %}
{% load static %}
{% load checkType %}

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    {% block load_files %}
    <script src="{% static 'scripts/signup.js' %}" language="JavaScript"></script>
    <script src="{% static 'scripts/signup_birthday.js' %}" language="JavaScript"></script>
    <link href="{% static 'styleSheets/signup.css' %}" rel="stylesheet">
{% endblock %}
</head>
<body>
{% block content %}
    <form method="POST" action="" id="signup_form">
        {% csrf_token %}
        <div id="signup_topContent">
...
            {{ form.errors }}
    </form>
{% endblock %}
</body>
</html>

错误是:

Reverse for 'MovieManager_show_movie' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['movie/show/(?P<id>[0-9]+)/$']

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

它在/user/signup/失败,因为您尝试打开此网址,但您的某个应用(MovieManger应用)的urls.py无法解析。

某处你有这样的事情:

{% url 'MovieManager_show_movie' %}

这里缺少id

{% url 'MovieManager_show_movie' movie_id %}