我正在按照教程创建博客。 根据教程,代码是正确的。 唯一的区别是我使用Django 1.9而不是1.8
在没有
的视图中调用Post
模型
publish__year=year,
publish__month=month,
publish__day=day)
不会返回404错误 - No Post matches the given query.
这是view.py
def post_detail(request, year, month, day, post):
post = get_object_or_404(Post, slug=post,
status='published',)
#publish__year=year,
#publish__month=month,
#publish__day=day)
return render(request, 'blog/post/detail.html', {'post': post})
模型部分看起来像models.py
class Post(models.Model):
...
publish = models.DateTimeField(default = timezone.now)
...
找不到查询的任何想法?
编辑:
网址看起来像localhost/blog/2016/07/30/second-post-entry/
def get_absolute_url(self):
return reverse('blog:post_detail', args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])
这似乎是问题所在:
self.publish.strftime('%m'), # eg. == 07, but publish__month == 7
self.publish.strftime('%d') # eg. == 30, publish__day == 30
答案 0 :(得分:0)
我得到了,您可以将self.publish.strftime('%m')
和self.publish.strftime('%d')
更改为self.publish.month
和self.publish.day
,
要么你可以将传递的数据转换为int publish__year=int(year), publish__month=int(month), publish__day=int(day)
。这应该可以解决问题。