【发布时间】:2014-12-14 05:22:05
【问题描述】:
我在查看博客的单个帖子时遇到问题。我正在尝试实现使用 slugline 和内容 ID 的 url。这是我的错误:
NoReverseMatch 在 /admin/r/7/2/ 使用参数 '()' 和关键字参数 '{'slugline': u'test-post-3', 'id': 2}' 的“文章”反向。尝试了 0 个模式:[]
views.py:
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext, loader
from django.core.urlresolvers import reverse
from django.views import generic
from django.utils import timezone
# Create your views here.
from articles.models import Content
class IndexView(generic.ListView):
template_name = 'articles/index.html'
context_object_name = 'latest_articles_list'
def get_queryset(self):
return Content.objects.filter(
published_date__lte=timezone.now()
).order_by('-published_date')[:5]
def detail(request, slugline, poll_id):
article = get_object_or_404(pk=poll_id)
return render(request, 'articles/detail.html', {'article': article})
urls.py:
from django.conf.urls import patterns, url
from articles import views
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name = 'index'),
#url(r'^(?P<slugline>[-\w\d]+), (?P<pk>\d+)/$', views.DetailView.as_view(), name='detail')
url(r'^(?P<slugline>[-\w\d]+),(?P<id>\d+)/$', view=views.detail, name='article'),
)
models.py:
from django.db import models
from django.db.models import permalink
from django.utils import timezone
import datetime
# Create your models here.
class Content(models.Model):
title = models.CharField(max_length=100, unique=True)
slugline = models.SlugField(max_length=100, unique=True)
body = models.TextField()
published_date = models.DateTimeField('date published')
def __unicode__(self):
return self.title
@permalink
def get_absolute_url(self):
return ('article', (), {
'slugline': self.slugline,
'id': self.id,
})
def was_published_recently(self):
now = timezone.now()
return now - datetime.timedelta(days=1) <= self.published_date <= now
was_published_recently.admin_order_field = 'published_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?'
【问题讨论】:
-
为什么显示“admin”?...您查看的网址是否正确?
-
您似乎没有配置 /admin/ url 模式,但错误消息似乎表明您正在尝试访问管理面板。
-
我也想知道。管理页面映射在主 url.py 中。我不知道为什么它在尝试访问“详细信息”页面时将我带到那里