Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修复连接到多个站点的flatpage django管理员预览的最佳方法_Django_Django Flatpages - Fatal编程技术网

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

修复连接到多个站点的flatpage django管理员预览的最佳方法,django,django-flatpages,Django,Django Flatpages,我已将flatpage附加到多个站点。它的管理员预览选择 任意站点,这是相当明显的调试后最多行 解决此问题的最佳方法是什么 我看到shortcut()函数接受一个request对象,因此我可以从那里提取主机,但我不希望修补实时服务器 我还没有考虑捕获管理员url,所以也许有人可以建议一些好的解决方案?在我看来,这可能被认为是Django中的一个bug,至少部分修复方法是检查当前站点ID是否是与对象相关的站点之一,如果是,则使用该站点而不是任意站点。你可以申请一张带有补丁的罚单 要在不修补Djan

我已将flatpage附加到多个站点。它的管理员预览选择 任意站点,这是相当明显的调试后最多行

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

我看到
shortcut()
函数接受一个
request
对象,因此我可以从那里提取主机,但我不希望修补实时服务器


我还没有考虑捕获管理员url,所以也许有人可以建议一些好的解决方案?

在我看来,这可能被认为是Django中的一个bug,至少部分修复方法是检查当前站点ID是否是与对象相关的站点之一,如果是,则使用该站点而不是任意站点。你可以申请一张带有补丁的罚单

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


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

好的,谢谢,我想我可能忽略了一些快速修复。