Как изменить элементы навигационной панели User Change Page в Django Admin с моделью Custom User? - PullRequest
0 голосов
/ 03 мая 2020

Ниже приведена фотография страницы изменения пользователя Django Администратор, в которой панель навигации страницы отмечена красным цветом.

enter image description here

Имя приложения, под которым определяется пользовательская модель пользователя: Пользователи

И имя модели пользовательского пользователя: Пользовательский пользователь

Таким образом, вопрос заключается в том, как изменить все 4 элемента (т. Е. Дом, Пользователи, Пользовательские пользователи, Пользовательский пользователь) панели навигации на странице изменения пользователя в Django admin ??

1 Ответ

0 голосов
/ 03 мая 2020

Итак, как мы видим, всего 4 элемента на панели навигации страницы изменения пользователя в Django Admin:

1.Дом

2.Пользователи

3.Пользователи

4.Пользователь

Мы все поменяем по очереди, но сначала добавим несколько строк в admin.py файле Users app (приложение, в котором определяется пользовательская модель пользователя):

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import CustomUser

class CustomUserAdmin(UserAdmin):
    change_form_template = 'change_form.html'

admin.site.register(CustomUser, CustomUserAdmin)

Пояснение к вышеприведенному коду: Сначала мы импортировали важные классы среди который UserAdmin импортируется, чтобы его можно было использовать в качестве базового класса для определения класса CustomUserAdmin. Затем мы определили класс CustomUserAdmin. Позднее мы зарегистрировали класс CustomUserAdmin на домашней странице администратора.

После этого создайте папку в приложении Users (приложение, в котором определяется пользовательская модель пользователя) по имени: templates

Now в папке templates создайте файл html по имени: change_form. html

* 1 036 * В файле change_form. html вставьте следующий код:
{% extends "admin/change_form.html" %}
{% load i18n admin_urls static admin_modify %}

{% block breadcrumbs %}

<div class="breadcrumbs">


<!-- Element 1 --> 
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
<!-- Element 1 ends --> 


<!-- Element 2 --> 
&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
<!-- Element 2 ends --> 


<!-- Element 3 --> 
&rsaquo; {% if has_view_permission %}
<a href="{% url opts|admin_urlname:'changelist' %}">
{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}
{% endif %}
<!-- Element 3 ends --> 


<!-- Element 4 --> 
&rsaquo;
    {% blocktrans with name=opts.verbose_name %}
     {{ name }}
    {% endblocktrans %}
<!-- Element 4 ends --> 



</div>
{% endblock %}

Таким образом, в приведенном выше коде есть 4 раздела, а также у нас есть 4 элемента в навигационной панели Страница изменения пользователя. Таким образом, один раздел для одного элемента.

Изменение 1-го элемента (т. Е. Дома)

Для этого вам необходимо go к разделу <!-- Element 1 --> файла change_form. html в папке templates приложения Users (Приложение, в котором определяется пользовательская модель пользователя).

После этого замените строку 'Home' на имя, которое вы хотите дать 1-й элемент панели навигации на странице изменения пользователя.

Вот и все для этого элемента .

Изменение 2-го элемента (т.е. пользователей)

Для этого вам необходимо go в apps.py файл в Пользователи app (Приложение, в котором определяется пользовательская модель пользователя)

И затем в классе, который будет иметь имя, например:

* 1 076 * UsersConfig (т.е. App_NameConfig)

добавить следующую строку:

verbose_name = 'Type here the name you want to give to the 2nd element of the navbar of User Change Page'

Примечание: Убедитесь, что вы добавили выше строка в классе только путем помещения надлежащего пробела перед добавлением вышеуказанной строки.

Вот и все для этого элемента.

Изменение 3-го элемента (т.е. пользовательских пользователей)

Для этого вам нужно go в файл models.py в приложении Users (Приложение, в котором определяется пользовательская модель пользователя)

И там в Custom User Model класс вы должны добавить следующий код:

    class Meta:
        verbose_name="Type here the name you want to give to the 3rd element of the navbar of User Change Page"

Примечание: Убедитесь, что вы добавили вышеупомянутые строки в Класс только путем помещения надлежащего пробела перед добавлением вышеуказанных строк.

Это все для этого элемента.

Изменение 4-го элемента (т.е. пользовательский пользователь)

Для этого вам необходимо go перейти в раздел <!-- Element 4 --> файла change_form. html в папке templates файла t Приложение Users (Приложение, в котором определяется пользовательская модель пользователя).

И там замените {{name}} именем, которое вы хотите дать на 4-й элемент панели навигации на странице изменения пользователя.

Также, если вы хотите отобразить имя пользователя, данные которого должны быть изменены, вы можете использовать:
{{ original|truncatewords:"18" }} вместо {{name}} .

Это все для этого элемента.

Таким образом, вы можете изменить все 4 элемента панели навигации на странице изменения пользователя в Django Admin с пользовательской моделью.

Надеюсь, это поможет вам !!

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