Здравствуйте. Я новичок в Django, но буквально с первых минут знакомства я влюбился в этот фреймворк.

Есть следующая задача:

Нужно, используя django allauth, создать одну точку входа для трёх административных панелей, одна из которых - wagtailCMS, две другие - стандартная django admin.

Вот роуты ведущие на админ панели:

from allauth.account.views import login as loginview

    urlpatterns = [
        url(r'^django-admin/', include(admin.site.urls)),
        url(r'^django-admin/login', loginview),
        url(r'^another-admin/', include('gglobal.anotheradmin.urls')),
        url(r'^another-admin/login', loginview),
        url(r'^cms/', include(wagtailadmin_urls)),
    ]

anotheradmin/admin.py :

class AnotherAdminSite(admin.AdminSite):
    pass


another_admin_site = AnotherAdminSite(name='anotheradmin')
another_admin_site.register(UserProfile)
another_admin_site.register(Call)
another_admin_site.register(Project)


another_admin_site.login = login_required(another_admin_site.login)

лишь благодаря этому another_admin_site.login = login_required(another_admin_site.login) удаётся сделать редирект на accounts/login, но при этом получается уродливый урл такого плана:

/another-admin/login/accounts/login?next=/another-admin/login/%3Fnext%3D/another-admin/

так же я переопределил адаптер из allauth, для изменения redirect url, после авторизации:

class AccountAdapter(DefaultAccountAdapter):
    def get_login_redirect_url(self, request):
        url = super(AccountAdapter, self).get_login_redirect_url(request)
        if request.user.has_perm('auth.change_permission'):
            url = reverse('admin:index')
        else:
            url = reverse('another_admin:index')
        return url

Хотелось бы, чтобы все логинились через accounts/login, после чего всех редиректило на нужные урлы, исходя из их ролей, чтобы при нажатии на logout их не оставляло на /another-admin/logout, django-admin/logout, а перенаправляло на страницу сайта.

Ну и самое важное, чтобы если юзер залогинелся на another-admin, он не мог зайти на django-admin, а его редиректило обратно. в свою админку.

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

Уверен, что кто-то из вас сталкивался с подобным.

Подскажите, в какую сторону рыть, как сделать это красиво, желательно по принципу DRY.

Заранее спасибо!