Обратные URL админки Django - PullRequest
0 голосов
/ 22 июня 2019

Как описано в этом ответе , мы можем использовать тег url для обращения URL-адресов администратора Django.Однако в приведенных там примерах вам необходимо указать имя приложения и модель в строке, переданной url.Есть ли способ передать их в качестве параметров вместо этого?Я собираюсь сделать что-то вроде этого:

{% url 'something here' app_name model_name object_id %}

Что я положу на 'something here'?

1 Ответ

1 голос
/ 24 июня 2019

Я предлагаю использовать django_extensions, чтобы использовать команду show_urls для поиска имен URL.

просто сделай

pip install django_extensions

затем добавьте django_extensions к вашему INSTALLED_APPS

#settings.py
INSTALLED_APPS = [
    #...
    'django_extensions',
]

Тогда вы можете запустить

python manage.py show_urls

Вы можете использовать его с grep, чтобы отфильтровать нужные вам URL. например, * 1 016 *

python manage.py show_urls | grep password
/admin/auth/user/<id>/password/  django.contrib.auth.admin.user_change_password  admin:auth_user_password_change
/admin/password_change/  django.contrib.admin.sites.password_change      admin:password_change
/admin/password_change/done/     django.contrib.admin.sites.password_change_done admin:password_change_done

И, скажем, мы хотим использовать django.contrib.auth.admin.user_change_password в нашем шаблоне:

Мы можем сделать:

{% url "admin:auth_user_password_change" user.pk %}

P.S. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * django_extensions * * * * * * * *1026* * * * * * * * * * * * * * * * * * *1026* * * * * * * * * * * * * * * *1026* для вашей производственной среды, поэтому вы, вероятно, хотите установить его локально для использования только при разработке.


Ресурсы:

документация по установке django_extensions команды django_extensions

...