Получить доступ к названию модели Django из шаблона администратора - PullRequest
0 голосов
/ 09 октября 2019

С учетом URL, например:

http://127.0.0.1:8000/admin/foo/bar/

Как получить доступ к переменной bar из запроса, используя request.resolver_match.kwargs?

Что kwarg дает администратор тоже bar?

Пробовал разные ключи вроде class, content_type, slug, model, но ни одна из них не работает.

РЕДАКТИРОВАТЬ :

Кажется, правильный kwarg - это model_name, который возвращает None, однако. Мне удалось извлечь название модели, используя:

request.resolver_match.url_name.split('_')[1]

Но интересно, есть ли более прямой путь.

1 Ответ

1 голос
/ 09 октября 2019

Это должен быть только ярлык приложения. Если вы нажимаете этот URL, значит, вы в классе ModelAdmin. Чтобы получить доступ к метке приложения (foo в примере вопроса) из ModelAdmin, вы можете сделать self.model._meta.app_label, поэтому вам не нужно проходить через запрос.

Вы можете получить доступ к модели (соответствующая строка)пример) в ModelAdmin с self.model.

Имя модели не будет непосредственно в объекте request, если вы не поместите его туда. Вы можете получить его из request.path.strip('/').split('/')[-1] или request.resolver_match.url_name.split('_')[1]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...