我在我的网站上创建了一个随机的博客文章链接,它使用的代码有效。当我创建它时,由于它一直说'QuerySet'对象没有属性'slug',所以让它正常工作时出现了问题,所以我想出了一个解决方法。解决方法对数据库提出了不必要的请求(我认为):
from django.http import HttpResponseRedirect
def randompost(request):
blog_posts = BlogPost.objects.filter(post_status = 'published').order_by('?')[:1]
blog_title = blog_posts[0]
blog_post = get_object_or_404(BlogPost, title=blog_title)
path = '/theblog/post/' + blog_post.slug + '/'
return HttpResponseRedirect(path)
理想情况下,我想要一个解决方案,例如Django 将 URL 重定向到最新创建的博客文章
由于它是重定向,它是否还需要正确的 http 代码?
带有 Queryset 错误的旧代码:
blog_post = BlogPost.objects.filter(post_status = 'published').order_by('?')[:1]
path = '/theblog/post/' + blog_post.slug + '/'
return HttpResponseRedirect(path)