Błąd odwrotny Django: NoReverseMatch
Sprawdziłem wiele różnych postów, ale wszystkie albo działają z inną wersją django, albo nie działają. Oto, co próbuję zrobić:
urls.py (dla całego projektu):
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^blog/', include('blog.urls', namespace="blog")),
url(r'^admin/', include(admin.site.urls)),
)
urls.py (specyficzne dla aplikacji):
urlpatterns = patterns ('' ,
url(r'^views.py:
def index(request):
posts = Post.objects.filter(published=True)
return render(request,'blog/index.html',{'posts':posts})
def posts(request, slug):
post = get_object_or_404(Post,slug=slug)
return render(request, 'blog/post.html',{'post':post})
I wreszcie szablon:
{% block title %} Blog Archive {% endblock %}
{% block content %}
<h1> My Blog Archive </h1>
{% for post in posts %}
<div class="post">
<h2>
<a href="{% url "postdetail" slug=post.slug %}">
{{post.title}}
</a>
</h2>
<p>{{post.description}}</p>
<p>
Posted on
<time datetime="{{post.created|date:"c"}}">
{{post.created|date}}
</time>
</p>
</div>
{% endfor %}
{% endblock %}
Z jakiegoś powodu daje mi to „Bez odwrotnego dopasowania”: Odwróć dla „postdetail” z argumentami „()” i nie znaleziono argumentów „{u'slug”: u'third ”}. 0 wypróbowanych wzorów: []
Próbowałem już pozbyć się podwójnych cytatówpostdetail
w szablonie, a ja próbowałem odwoływać się do niego przez nazwę widoku zamiast nazwy wzorca. Wciąż nie ma szczęścia. Dokumentacja też nie jest zbyt pomocna.
Pomoc jest naprawdę doceniana! Dzięki
, views.index, name='index'),
url(r'^(?P<slug>[\w\-]+)/views.py:
def index(request):
posts = Post.objects.filter(published=True)
return render(request,'blog/index.html',{'posts':posts})
def posts(request, slug):
post = get_object_or_404(Post,slug=slug)
return render(request, 'blog/post.html',{'post':post})
I wreszcie szablon:
{% block title %} Blog Archive {% endblock %}
{% block content %}
<h1> My Blog Archive </h1>
{% for post in posts %}
<div class="post">
<h2>
<a href="{% url "postdetail" slug=post.slug %}">
{{post.title}}
</a>
</h2>
<p>{{post.description}}</p>
<p>
Posted on
<time datetime="{{post.created|date:"c"}}">
{{post.created|date}}
</time>
</p>
</div>
{% endfor %}
{% endblock %}
Z jakiegoś powodu daje mi to „Bez odwrotnego dopasowania”: Odwróć dla „postdetail” z argumentami „()” i nie znaleziono argumentów „{u'slug”: u'third ”}. 0 wypróbowanych wzorów: []
Próbowałem już pozbyć się podwójnych cytatówpostdetail
w szablonie, a ja próbowałem odwoływać się do niego przez nazwę widoku zamiast nazwy wzorca. Wciąż nie ma szczęścia. Dokumentacja też nie jest zbyt pomocna.
Pomoc jest naprawdę doceniana! Dzięki
, views.posts, name="postdetail"),
)
views.py:
def index(request):
posts = Post.objects.filter(published=True)
return render(request,'blog/index.html',{'posts':posts})
def posts(request, slug):
post = get_object_or_404(Post,slug=slug)
return render(request, 'blog/post.html',{'post':post})
I wreszcie szablon:
{% block title %} Blog Archive {% endblock %}
{% block content %}
<h1> My Blog Archive </h1>
{% for post in posts %}
<div class="post">
<h2>
<a href="{% url "postdetail" slug=post.slug %}">
{{post.title}}
</a>
</h2>
<p>{{post.description}}</p>
<p>
Posted on
<time datetime="{{post.created|date:"c"}}">
{{post.created|date}}
</time>
</p>
</div>
{% endfor %}
{% endblock %}
Z jakiegoś powodu daje mi to „Bez odwrotnego dopasowania”: Odwróć dla „postdetail” z argumentami „()” i nie znaleziono argumentów „{u'slug”: u'third ”}. 0 wypróbowanych wzorów: []
Próbowałem już pozbyć się podwójnych cytatówpostdetail
w szablonie, a ja próbowałem odwoływać się do niego przez nazwę widoku zamiast nazwy wzorca. Wciąż nie ma szczęścia. Dokumentacja też nie jest zbyt pomocna.
Pomoc jest naprawdę doceniana! Dzięki