我创建了一个应用程序“博客”。在我的应用程序中,我有几个模型,包括“BlogIndex(页面)”。当我运行本地服务器时,我发现自己在“home_page.html”。我想要的是在“blog_index.html”启动我的本地服务器。我知道我可以在设置> site> localhost设置根页面以使我的“blog_index.html”成为根页面,但我不能这样做,因为在我的应用程序中我有一些其他模型同时存在作为“BlogIndex(页面)”的级别,他们是根“子页面”的孩子,所以它会制动我的代码。所以我的问题是:我可以从“HomePage(页面)”重定向到我的“BlogIndex”,这样当我启动服务器时,我会自动从“HomePage”重定向到“BlogIndex”吗?我该怎么做?它会对网站的性能产生多大影响并进行优化?
我知道有设置>重定向但它只适用于非活动页面,但我需要“HomePage”才能激活。 谢谢。
答案 0 :(得分:1)
也许更好的方法是在您的主页上显示您的博客帖子(以及您想要的任何其他模型)。只需覆盖get_context()。见这里:Wagtail Views: extra context
更新: 您可以通过重写serve()方法重定向。例如,在您的模型中,您可以执行以下操作:
# home/models.py
...
from django.http import HttpResponseRedirect
from django.urls import reverse
class HomePage(Page):
body = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
def serve(self, request):
# Redirect to blog index page
return HttpResponseRedirect('/blog/')
# only do this if you're using urls.py and namespaces
# return HttpResponseRedirect(reverse('blog:index'))