Лучший способ исправить предварительный просмотр django плоской страницы, прикрепленной к нескольким сайтам - PullRequest
0 голосов
/ 13 января 2010

У меня есть плоская страница, прикрепленная к нескольким сайтам. Свой предварительный просмотр админ выбирает произвольный сайт, что вполне очевидно после отладки до строк 35-36 из django.contrib.contenttypes.views.shortcut().

Как лучше всего решить эту проблему?

Я вижу, что функция shortcut() принимает объект request, поэтому я могу просто извлечь хост оттуда, но я предпочитаю не исправлять живой сервер.

Я еще не смотрел на перехват URL администратора, так что, может быть, кто-то может предложить какое-нибудь хорошее решение?

1 Ответ

1 голос
/ 13 января 2010

На мой взгляд, это может считаться ошибкой в ​​Django, и, по крайней мере, частичным исправлением было бы проверить, является ли текущий SITE_ID одним из сайтов, связанных с объектом, и если это так, использовать его вместо произвольного один. Вы можете отправить заявку с патчем.

Чтобы исправить это без внесения исправлений в Django, вы можете переопределить шаблон формы редактирования администратора для модели плоских страниц, чтобы можно было вставить нужный URL-адрес в эту ссылку вместо стандартного, который идет в контекстном представлении. Я не изучил это достаточно, чтобы понять, насколько он чист.

Другой вариант может заключаться в том, чтобы обезопасить модель Flatpage с помощью метода get_absolute_url, который фактически возвращает полный абсолютный URL-адрес, включая домен, на основе Site.objects.get_current (). Domain.

...