Поиск админ изменения URL для произвольной модели Django - PullRequest
4 голосов
/ 02 ноября 2011

Как вы ищите админский URL для произвольной модели?

Если я знаю модель, я могу получить URL, выполнив что-то вроде:

>>> print urlresolvers.reverse('admin:myapp_mymodel_change', args=(obj.id,))
/admin/myapp/mymodel/123/

У меня есть общий внешний ключ для модели, и я хотел бы предоставить ссылку в админке на соответствующую страницу изменений объекта. Поскольку это может быть модель любого типа, я не могу легко использовать reverse (). Есть ли какой-то способ, которым я мог бы просто это к следующему?

>>> get_admin_change_url(obj)
/admin/myapp/mymodel/123/

1 Ответ

5 голосов
/ 03 ноября 2011

Получив объект, вы можете получить доступ к его метке и имени приложения в классе _meta, а затем динамически создать имя URL-адреса изменения администратора.

app_label = obj._meta.app_label
model = obj._meta.module_name

reverse('admin:%s_%s_change' % (app_label, model), args=(obj.id,))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...