0

我将平面页面附加到多个站点。它的管理预览选择了任意站点,这在调试django.contrib.contenttypes.views.shortcut().

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

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

我还没有看过 admin url,所以也许有人可以提出一些不错的解决方案?

4

1 回答 1

1

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

要在不修补 Django 的情况下修复它,您可能会考虑覆盖 flatpages 模型的管理员编辑表单模板,以便您可以将所需的 URL 放入该链接,而不是转到快捷视图的默认 URL。我还没有仔细研究它,不知道它有多干净。

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

于 2010-01-13T17:26:43.180 回答