2013-02-26 11 views
7

Ich habe Probleme beim Konfigurieren meiner URL, um eine Detailansicht anzuzeigen. Klicken Sie auf diesen Link: <a href='{% url blog_detail blog.slug %}'>{{ blog.name }}</a> zeigt blog.html, als ich dachte, es würde blog-detail.html zeigen. Es gibt keine Fehler und die Browser-Leiste sagt: example.com/blog/the-slug, zeigt aber immer noch die HTML von blog.html, nicht blog-detail.html. Irgendwelche Ideen warum? Danke für deine Ideen.Django URL, Slug für Detailseite

url:

url(r'^blog/', 'myapp.views.blog', name='blog'), 
url(r'^blog/(?P<slug>[\w-]+)/$', 'myapp.views.blog_detail', name='blog_detail'), 

Ansichten:

def blog(request): 
    blog_list = Blog.objects.all() 
    return render(request, 'blog.html', {'blog_list':blog_list}) 

def blog_detail(request, slug): 
    blog = get_object_or_404(Blog, slug=slug) 
    return render(request, 'blog-detail.html', {'blog':blog}) 

EDIT: Ausgabe angefordert von @omouse

Dies ist die Ausgabe auf den Link aus klicken. Es ist genau das gleiche wie blog.html, aber es sollte blog-detail.html sein. Argggg!

<div id='content-wrapper'> 
<section> 
<div class='blog-name'><h2><a href='/blog/test/'>Test</a></h2></div> 
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a ... 

<div class='blog-name'><h2><a href='/blog/second-test/'>Second Test</a></h2></div> 
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a ... 
</section> 
</div> 
+0

versuchen Sie dieses {{ blog.name }} catherine

+0

Ja schon versucht, dass dank. Immer noch kein Glück. Nicht sicher, was könnte das Problem sein ... –

+0

können Sie hinzufügen, was die Vorlage ausgegeben wird? –

Antwort

22

Die Urls sind das Problem, die erste wird alles (/blog/, /blog/test/, /blog/awdlawdjaawld) entsprechen, müssen Sie das Dollarzeichen $ am Ende davon nur Spiel /blog/.

url(r'^blog/$', 'myapp.views.blog', name='blog'), 
url(r'^blog/(?P<slug>[\w-]+)/$', 'myapp.views.blog_detail', name='blog_detail'), 

Das oben genannte sollte korrekt funktionieren.

This is a good reference for Regular Expressions

+0

Natürlich danke! –

Verwandte Themen