FORCE_SCRIPT_NAME='/app/'
Добавьте это в settings.py и перезапустите Django. Значение должно соответствовать записи местоположения в nginx, чтобы работать правильно.
Я попробовал другие ответы, оставленные здесь, и столкнулся с проблемами, которые для меня становились сложными. Я поиграл с def __call __ ()
и придумал следующее. Вероятно, это неправильный способ сделать это, но он работает ...
возьмите здесь переменную GET (все в пределах класса RadioGridAdmin, как описано выше в моем первоначальном посте):
def __call__(self, request, url):
global start_date
start_date = request.GET['param']
return super(RadioGridAdmin, self).__call__(request, url)
и, поскольку он глобальный, вы можете Теперь зайдите сюда:
def highlight_link(self):
# access start_date here
class RadioGridAdmin(admin.ModelAdmin):
def highlight_link(self, obj):
return (self.param)
def changelist_view(self, request, extra_context=None):
self.param = request.GET['param']
return super(RadioGridAdmin,self).changelist_view(request, extra_context=extra_context)
Никакого прямого способа выполнить это. Я вижу 2 возможных решения.
Используйте хранилище местных жителей потока для того же объекта запроса
from django.utils._threading_local import locals
globals = locals()
class RadioGridAdmin(admin.ModelAdmin):
def __call__(self, request, *args, **kwargs):
globals['radio_grid_admin_request'] = request
return super(RadioGridAdmin, self).__call__(request, *args, **kwargs)
def highlight_link(self):
request = globals['radio_grid_admin_request']
# request.GET processing
return ('some custom link')
При использовании простой нерезьбовой установки Django, возможно сохранить объект запроса так же, как атрибут:
class RadioGridAdmin(admin.ModelAdmin):
def __call__(self, request, *args, **kwargs):
self.request = request
return super(RadioGridAdmin, self).__call__(request, *args, **kwargs)
def highlight_link(self):
# self.request.GET processing
return ('some custom link')
Что не так с этим:
def highlight_link(self, request):
# access start_date here