Django1.9:没有模型匹配给定的查询

时间:2016-07-31 19:17:36

标签: python django view model

我正在按照教程创建博客。 根据教程,代码是正确的。 唯一的区别是我使用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

1 个答案:

答案 0 :(得分:0)

我得到了,您可以将self.publish.strftime('%m')self.publish.strftime('%d')更改为self.publish.monthself.publish.day, 要么你可以将传递的数据转换为int publish__year=int(year), publish__month=int(month), publish__day=int(day)。这应该可以解决问题。