修复附加到多个站点的flatpage的django管理员预览的最佳方法

时间:2010-01-13 09:18:19

标签: django django-flatpages

我有多个网站的平面页面。它的管理预览选择 任意站点,在调试到行35-36 of django.contrib.contenttypes.views.shortcut()之后非常明显。

解决此问题的最佳方法是什么?

我看到shortcut()函数需要一个request对象,所以我可以从那里提取主机,但我更喜欢不修补实时服务器。

我还没有看过捕捉管理网址,所以也许有人可以建议一些不错的解决方案?

1 个答案:

答案 0 :(得分:1)

在我看来,这可能被认为是Django中的一个错误,并且至少部分修复将检查当前SITE_ID是否是与该对象相关的站点之一,如果是,则使用该一个而不是任意一个一。您可以使用补丁提交票证。

要修复它而不修补Django,您可能会考虑覆盖flatpages模型的管理编辑表单模板,以便您可以将所需的URL放入该链接而不是默认视图中的URL。我没有足够深入地了解它会有多干净。

另一个选项可能是使用get_absolute_url方法monkeypatch Flatpage模型,该方法实际上返回一个完整的绝对URL,包括域,基于Site.objects.get_current()。域。