Django NoReverseMatch错误 [英] Django NoReverseMatch Error

查看:54
本文介绍了Django NoReverseMatch错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Django开发博客脚本.但是,当我想显示帖子链接时,出现NoReverseMatch错误.

I'm trying to develop a blog script with Django. But when I want to show post links, I get NoReverseMatch error.

我的views.py

My views.py

# -*- coding: utf-8 -*-

# Create your views here.

from .models import Yazi, Yorum, Kategori
from django.http import HttpResponse, Http404
from django.shortcuts import render_to_response
from django.template import RequestContext, loader
from django.contrib.sites.models import Site

def Home(request):
    try:
        posts = Yazi.objects.filter(yayinlanmis=True).order_by('-yayinlanma_tarihi')
    except Yazi.DoesNotExist:
        raise Http404
    site = Site.objects.get_current()

    c = RequestContext(request,{
        'posts':posts,
        'site':site
        })
    return render_to_response('Penguencik_Yazilar/yazi_list.html', c)

def Detail(request, slug):
    post = Yazi.objects.get(slug=slug)
    site = Site.objects.get_current()

    c= RequestContext(request,{
        'posts':post,
        'site':site
        })
    return render_to_response('Penguencik_Yazilar/yazi_detail.html',c)

应用程序文件夹中的Urls.py.

Urls.py in application folder.

from django.conf.urls import patterns, url
import views

urlpatterns = patterns('',
    url(r'^$', views.Home,name='index'),
    url(r'^/makale/(?P<slug>[0-9A-Za-z._%+-]+)$', views.Detail,name='detail'),
)

项目文件夹中的Urls.py

Urls.py in project folder

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', include('Penguencik_Yazilar.urls',namespace='blog')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

和模板代码.我在做什么错了?

And template code. What am I doing wrong?

{% load url from future %}
...
<a href="{% url 'blog:detail' yazi.slug %}">Read</a>

推荐答案

尝试更改此内容:

<a href="{% url 'blog:detail' yazi.slug %}">Read</a>

收件人:

<a href="{% url 'blog:detail' slug=yazi.slug %}">Read</a>

在这里使您的视图期望 slug 关键字(?P< slug> [0-9A-Za-z ._%+-] +).

Cause your view expect slug keyword here (?P<slug>[0-9A-Za-z._%+-]+).

这篇关于Django NoReverseMatch错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆