get_absolute_url 没有加载页面
get_absolute_url doesn't load the page
所以我正在尝试编写一个博客,并为每篇文章创建一个特殊页面,并且我有 blog.html
(博客的主页),其中包含 "Read more" 按钮。
<a class = "Read" href="{{ post.get_absolute_url }}">Read more...</a>
我还有另一个文件 post.html
,它是每个文章页面的基本模板。 Post 模型有 slug 字段,urls.py 是这样的:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.front, name='front'),
url(r'^blog/', views.blog, name='blog'),
url(r'^contact/', views.contact, name='contact'),
url(r'^blog/(?P<slug>[^\.]+)', views.page, name='post')
]
而页面浏览量是这样的:
def page(request, slug):
return render_to_response('home/post.html', {
'post': get_object_or_404(Post, slug=slug)
})
问题是当我按下 read more 时没有任何反应,但我查看终端 window 并且服务器将其作为请求和 return 200 这意味着成功但页面没有加载。
编辑:
Post 型号:
class Post(models.Model):
title = models.CharField(max_length=100, default='')
text = models.TextField(default='')
slug = models.SlugField(default=uuid.uuid1, unique=True)
status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='w')
description = models.TextField(default='', max_length=300)
creation_date = models.DateTimeField(auto_now_add=True, editable=False)
def __unicode__(self):
return self.title
def edit_text(self, text):
self.text = text
class Meta:
get_latest_by = 'creation_date
您是否为 Post 模型定义了 get_absolute_url
?
from django.core.urlresolvers import reverse
from django.db import models
class Post(models.Model):
#fields
def get_absolute_url(self):
return reverse('post', args=[self.slug])
这就是问题所在。
请尝试通过 $
关闭 url 形态
urlpatterns = [
url(r'^$', views.front, name='front'),
url(r'^blog/$', views.blog, name='blog'),
url(r'^contact/$', views.contact, name='contact'),
url(r'^blog/((?P<slug>.*)/$', views.page, name='post')
]
所以我正在尝试编写一个博客,并为每篇文章创建一个特殊页面,并且我有 blog.html
(博客的主页),其中包含 "Read more" 按钮。
<a class = "Read" href="{{ post.get_absolute_url }}">Read more...</a>
我还有另一个文件 post.html
,它是每个文章页面的基本模板。 Post 模型有 slug 字段,urls.py 是这样的:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.front, name='front'),
url(r'^blog/', views.blog, name='blog'),
url(r'^contact/', views.contact, name='contact'),
url(r'^blog/(?P<slug>[^\.]+)', views.page, name='post')
]
而页面浏览量是这样的:
def page(request, slug):
return render_to_response('home/post.html', {
'post': get_object_or_404(Post, slug=slug)
})
问题是当我按下 read more 时没有任何反应,但我查看终端 window 并且服务器将其作为请求和 return 200 这意味着成功但页面没有加载。
编辑: Post 型号:
class Post(models.Model):
title = models.CharField(max_length=100, default='')
text = models.TextField(default='')
slug = models.SlugField(default=uuid.uuid1, unique=True)
status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='w')
description = models.TextField(default='', max_length=300)
creation_date = models.DateTimeField(auto_now_add=True, editable=False)
def __unicode__(self):
return self.title
def edit_text(self, text):
self.text = text
class Meta:
get_latest_by = 'creation_date
您是否为 Post 模型定义了 get_absolute_url
?
from django.core.urlresolvers import reverse
from django.db import models
class Post(models.Model):
#fields
def get_absolute_url(self):
return reverse('post', args=[self.slug])
这就是问题所在。
请尝试通过 $
urlpatterns = [
url(r'^$', views.front, name='front'),
url(r'^blog/$', views.blog, name='blog'),
url(r'^contact/$', views.contact, name='contact'),
url(r'^blog/((?P<slug>.*)/$', views.page, name='post')
]