В Django, как мне имитировать двухэтапный метод добавления пользователей через администратора для моих собственных моделей? - PullRequest
7 голосов
/ 13 сентября 2010

У меня есть модель, в которой я хотел бы создать пользовательскую форму изменения admin, имитирующую поведение функции добавления пользователя стандартного интерфейса администратора Django.То есть мне нужно двухэтапное действие, при котором пользователь сначала вводит только идентификатор устройства, а затем перенаправляется на страницу, где он может вводить информацию об устройстве.Аналогично тому, как вы сначала вводите имя пользователя и пароль для пользователя, а затем вводите другую информацию на следующей странице.Есть идеи?

1 Ответ

7 голосов
/ 31 октября 2010

Мне, наконец, удалось выяснить, как это делает Джанго.Существует метод response_add, переопределенный внутри собственно ModelAdmin.Вот ссылка на него для модели User в источнике django: django.contrib.auth.admin.py .Это выглядит так:

def response_add(self, request, obj, post_url_continue='../%s/'):
    if '_addanother' not in request.POST and '_popup' not in request.POST:
        request.POST['_continue'] = 1
    return super(UserAdmin, self).response_add(request, obj, post_url_continue)

Если вы добавите этот метод в свой класс ModelAdmin, он должен работать аналогично.

Это охватывает только двухэтапный процесс сохранения в панели администратора, нодругие функции, такие как добавление дополнительных полей в форму на втором шаге, также можно найти в источнике django.

...