Почему django продолжает использовать старое пространство имен администратора наряду с новым пользовательским url администратора?

Я разрабатываю приложение на django. Я хочу изменить url администратора с помощью переменной окружения.

Вот как я получаю его в urls.py:

import os
admin_url = os.getenv('SUPERUSER_URL', 'custom-admin/') # Default is 'custom-admin/' if no key is set
# Also, the environment variable has a slash at the end

В urlpatterns он определяется следующим образом:

urlpatterns = [
    path(admin_url, admin.site.urls),
    # more views...
]

Всякий раз, когда я пытаюсь получить доступ к своей панели администратора, я могу сделать это без проблем, используя новое имя. Но проблема заключается в двух вещах:

  1. После того, как я получил доступ к админ-панели, при любой попытке обратиться к модели, связанной с панелью, она будет перенаправлена на url, с которым ассоциируется оригинальное пространство имен админки в django. Например, admin/users вместо custom-admin/users
  2. .
  3. Вторая проблема заключается в том, что я все еще могу получить доступ к панели администратора, используя оригинальное имя 'admin'
  4. .

Я не использую никаких пользовательских шаблонов админки, я просто определил кучу моделей для использования с админкой сайта в файле admin.py.

<
from django.contrib import admin
from .models import User, Foo
from django.contrib.auth.admin import UserAdmin

class CustomUserAdmin(UserAdmin):
    ''' Custom User Admin to inherit the user model '''
    model = User
    # some data

class FooAdmin(admin.modelAdmin):
    list_display = ('foo', 'bar')
    search_fields = ('foo', 'bar')

admin.site.register(User, CustomUserAdmin),
admin.site.register(Foo, FooAdmin)
Вот фрагмент моего файла admin.py, если вам нужно посмотреть, как я их реализую:

Мне бы очень пригодился совет.

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

Похоже, я допустил ошибку, предположив, что папка проекта с urls.py будет пустой. Я заменил строку включения администратора на код, приведенный выше.

Вернуться на верх