2010-01-13 1 views
0

У меня есть плоская страница, прикрепленная к нескольким сайтам. Его предварительный просмотр admin выбирает произвольный сайт , что совершенно очевидно после отладки до строк 35-36 of django.contrib.contenttypes.views.shortcut().Лучший способ исправить django admin Предварительный просмотр плоской страницы, прикрепленной к нескольким сайтам

Что было бы лучшим способом устранить эту проблему?

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

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

+0

Ваша проблема непонятна –

ответ

1

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

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

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

+0

Хорошо, спасибо, я подумал, что, может быть, я пропущу какое-то быстрое решение. –