1
내 django 블로그 앱 프로젝트에서 slugified URL을 사용하여 페이지에 액세스하려고합니다. Django 문제가 발생했습니다. URL : NoReverseMatch at/
이
문제 템플릿 코드는 모습입니다 : {% for post in latest_post_list %}
<li><a href="{% url 'blog:view_post' post.title_text|slugify %}">{{post.title_text}}</a> {{post.pub_date}}</li>
이 내 URL 경로가 모습입니다 같은 :
url(r'^(?P<post_name>)/$', views.view_post, name='view_post'))
이 내보기 기능이 모습입니다 같은 :
def view_post(request, post_name):
pdb.set_trace()
try:
post_name = post_name.encode('ascii','ignore') #un-unicode name
unslugified_post_name = post_name.replace('-', ' ') #will get slugified name, replace all hyphens with spaces
post = Post.objects.get(title_text=unslugified_post_name)
except Post.DoesNotExist:
raise Http404("Post does not exist")
return render(request, 'blog/posts.djhtml', {'post': post})
그리고 이것은받은 오류에 대한 스택 추적입니다.
012 3,516,Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.7.3
Python Version: 2.7.3
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog')
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')
Template error:
In template /home/andrew/projects/heroku-blog/My-Django-Blog/blog/templates/blog/index.djhtml, error at line 53
Reverse for 'view_post' with arguments '(u'lorem-ipsum',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'blog/(?P<title_text>)/$']
43 : <h5><a href="/blog/">Programmer Plebeian</a></h5>
44 : </div>
45 : {{navbar|safe}}
46 : </div>
47 : </div>
48 : <div class="row">
49 : <div id="postindex" class="eleven columns">
50 : <ul>
51 : {% if latest_post_list %}
52 : {% for post in latest_post_list %}
53 : <li><a href=" {% url 'blog:view_post' post.title_text|slugify %} ">{{post.title_text}}</a> {{post.pub_date}}</li>
54 : {% endfor %}
55 : </ul>
56 : {% else %}
57 : <p>There is no blog post available here</p>
58 : {% endif %}
59 : </section>
60 : </div>
61 : </div>
62 : </div>
63 :
Traceback:
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/blog/views.py" in index
13. return render(request, 'blog/index.djhtml', context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/shortcuts.py" in render
50. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
178. return t.render(context_instance)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/base.py" in render
148. return self._render(context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/base.py" in _render
142. return self.nodelist.render(context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/base.py" in render
844. bit = self.render_node(node, context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
80. return node.render(context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
312. return nodelist.render(context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/base.py" in render
844. bit = self.render_node(node, context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
80. return node.render(context)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
201. nodelist.append(node.render(context))
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
458. six.reraise(*exc_info)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
444. url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
551. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/andrew/projects/heroku-blog/My-Django-Blog/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
468. (lookup_view_s, args, kwargs, len(patterns), patterns))
Exception Type: NoReverseMatch at/
Exception Value: Reverse for 'view_post' with arguments '(u'lorem-ipsum',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'blog/(?P<title_text>)/$']
이 오류를 일으키는 필드의 값은
내가 문제가 경로 정규 표현식에 아마 알고있다 "로렘 입숨"입니다,하지만 난 그것을 위해 적절한 정규 표현식을 알아내는 데 문제가 , 나는 그들에게 새로운 사람이다. 내가 지금하고있는 일은 그것이 어떻게 생겼는지에 관계없이 전달 된 문자열을 얻는 것뿐입니다. 그러나 당신이 저에게 더 튼튼한 것을 보여주고 싶다면, 나는 매우 감사 할 것입니다.또한, slugify가 유니 코드 문자열을 반환하지 못하도록하는 방법이 있습니까?
Btw, '\ w'는 밑줄을 정의 (영숫자 + 밑줄)로 일치하므로 추가 언급 할 필요가 없습니다. 그걸 제외하고 나는 이것이 문제 (적어도 첫 번째 문제)라고 확신한다. tak privet Habarovsk :) – alecxe
죄송합니다! 당신 말이 맞아요. 자주 사용되는 '[a-z _-]'정규식에서 얻은 근육질의 기억입니다. Vzaimniy privet, NY. – catavaran
시도한 후에 오류가 발생했습니다. 인수 '(u'lorem-ipsum',) '및'{} '이 (가)없는 키워드 인수'view_post '를 역순으로 검색합니다. 1 패턴을 시도했습니다 : –