django admin Добавить пользовательскую кнопку + пользовательскую форму - PullRequest
5 голосов
/ 14 октября 2010

Я хочу добавить пользовательскую кнопку рядом с «Добавить имя_модели». Когда я нажимаю на только что созданную кнопку, я хотел бы показать пользовательскую форму, где я могу выбрать модель из поля выбора. Когда я нажимаю на кнопку «Сохранить», я хочу сохранить эту модель и выбрать некоторые параметры, чтобы это было «добавить», но без повторного выбора всех параметров. Я приведу четкий пример:

У меня есть модель с названием «Книга». В первый раз, когда я создаю новую запись в книге, у меня есть форма «Добавить книгу», и я должен заполнить ее полностью. Итак, у меня есть книга с первичным ключом = Book_1_1 Но теперь я хочу добавить вторую книгу, это та же книга, что и первая 1 НО версия изменилась, поэтому я хочу новую книгу, но я не хочу больше выбирать все элементы в стандартной форме «Добавить книгу» я хочу что-то вроде щелчка по созданию нового экземпляра -> я могу выбрать 1 книгу из поля выбора со всеми объектами книги в нем, и когда я «сохраняю» этот новый экземпляр книга генерируется. Этот экземпляр имеет следующий первичный ключ: например, Book_1_2. Я знаю, как сохранить это, но я не знаю, как изменить администраторский сайт, чтобы сделать это. Мне нужно 2 вещи:

1) добавить кнопку «новый экземпляр» рядом с «Add_model_name» 2) Доставить форму со всеми объектами имя_модели в поле выбора, и когда я нажимаю кнопку Сохранить, я хочу получить объект, с помощью которого я могу изменить некоторые вещи, чтобы сохранить его как «новую книгу».

Есть идеи?

ОБНОВЛЕНИЕ Я уже добавил кнопку 'new', но, как я могу видеть в этот момент вместо url = add, мне нужно создать новый URL-адрес внутри администратора, например add_instance и т. Д. есть какая-нибудь документация по этому поводу?

С уважением, Hein

1 Ответ

1 голос
/ 04 мая 2011

Слишком тяжело для себя. Просто сделай это:

class MyModelAdmin(admin.ModelAdmin):
    # Other stuff here
    save_as = True

Теперь вы можете открыть запись в своей книге, изменить что-то другое и нажать «Сохранить как новую», и она создаст новую книгу с этой информацией вместо перезаписи другой.

...