我的编辑想知道在社交媒体上发布的结束页面 url。有没有办法在实际发布之前获取页面 URL(预定发布)?
问问题
15 次
2 回答
0
这里的代码片段考虑了 slug 更改或页面在树中移动时的情况(您需要以某种方式对 Page 模型进行子类化并添加一个新字段published_url
):
def save_revision(self, user=None, submitted_for_moderation=False, approved_go_live_at=None, changed=True,
log_action=False, previous_revision=None, clean=True):
old_record = Page.objects.get(id=self.id)
if old_record.slug != self.slug:
kwargs = {'update_fields': ['slug']}
Page.save(self, kwargs)
self.published_url = self.get_full_url()
return Page.save_revision(self, user, submitted_for_moderation, approved_go_live_at, changed,
log_action, previous_revision, clean)
于 2022-02-21T21:16:59.750 回答
0
slug_url
应该给你你需要的东西:
https ://docs.wagtail.org/en/latest/topics/writing_templates.html?highlight=slugurl#slugurl-tag
请注意,这slugurl
可能会提供相对链接,因此如果提供,那么您必须将域名添加到相对 url 以便为用户创建最终 url。有关如何在 Python 代码中使用的示例,请参阅测试test_slugurl_tag()
中的例程。slugurl
另请注意,如果更改页面树中页面的位置或更改 slug(在Promote
选项卡中定义),那么您slugurl
在任何此类更改之前检索的 url 将不再有效。但是,如果您使用的是 Wagtail 2.16+,那么如果您使用该应用程序,则可以自动处理此问题wagtail.contrib.redirects
。
于 2022-02-21T16:37:48.790 回答