при сохранении, если пользователь выбирает определенный вариант я хочу принять пользователя на страницу, где он может иметь еще одно поле, чтобы быть заполнены, а затем перенаправить на страницу администратора по умолчаниюСобирать дополнительную информацию на странице администрирования Django?
0
A
ответ
0
Вместо того, чтобы перенаправлять на новую страницу, вы можете просто override the form что используются страницы создания и обновления. Это позволяет добавлять дополнительные поля в форму модели, сохраняя всю обработку формы в одном месте.
Сначала вам нужно настроить ModelAdmin использовать пользовательскую форму:
admin.py
from django.contrib import admin
from forms import BookAdminForm
from models import Book
class BookAdmin(admin.ModelAdmin):
form = BookAdminForm
admin.site.register(Book, BookAdmin)
forms.py
from django import forms
class BookAdminForm(forms.ModelForm):
additional_field = forms.CharField(max_length=100)
class Meta:
model = Book
Далее, вам понадобится override the save method, чтобы проверить, выбран ли «определенная опция», а затем обработать дополнительное поле ap propriately. Внутри вашего класса вам нужно что-то вроде этого:
def save(self, *args, **kwargs):
if self.cleaned_data['certain_field'].value == 'certain option':
# process additional_field
# don't forget to call super to save the rest of the form
super(BookAdminForm, self).save(*arg, **kwargs)
ПРИМЕЧАНИЕ: Этот код не тестировался, но он должен направить вас в правильном направлении.
Также возможно использовать метод override the save_model()
в ModelAdmin.
Смежные вопросы
- 1. Braintree-javascript - собирать дополнительную информацию о клиенте?
- 2. Показать дополнительную информацию на моей странице
- 3. SubCatalog не отображается на странице администрирования django
- 4. msinfo32.exe не может собирать информацию на странице sharepoint ASP.net
- 5. Модели Django - передать дополнительную информацию менеджеру
- 6. Django - укажите дополнительную информацию в шаблоне
- 7. Django: «Собирать» должно собирать медиафайлы?
- 8. Зарегистрируйте каждую таблицу/класс из приложения на странице администрирования Django.
- 9. Вызов внешнего javascript на странице администрирования по умолчанию в Django
- 10. SQL - Ссылка на дополнительную информацию таблицы
- 11. Визуальный компонент, получать информацию или собирать информацию?
- 12. GWTUpload добавить дополнительную информацию
- 13. Как получить дополнительную информацию
- 14. Как переопределить страницу администрирования Django?
- 15. select2 - сохранить дополнительную информацию
- 16. Необходимо показать дополнительную информацию
- 17. Получение средств администрирования Django
- 18. Настройка Django-администрирования
- 19. Собирать информацию о файле изображения
- 20. Как собирать сетевую информацию программно
- 21. Как я могу показать дополнительную информацию о странице в Google?
- 22. Переносить дополнительную информацию в ответ на ошибку
- 23. Маленький стол с ссылкой на дополнительную информацию
- 24. Ошибка доступа при доступе к странице администрирования Django, обслуживаемой Apache
- 25. Получить дополнительную информацию из журнала django/python или сервера
- 26. Как сохранить дополнительную информацию о пользователях в Django?
- 27. Как добавить дополнительную информацию в представление редактирования admin в django?
- 28. add_meta_box в уникальной странице администрирования
- 29. предоставить openid пользователям дополнительную информацию
- 30. django logout перенаправляет меня на страницу администрирования
Возможно, лучше здесь переопределить метод save_model класса admin, а не form.save, поскольку вам может понадобиться сделать что-то вроде перенаправления пользователя. –
в этом я каждый раз показываю дополнительное поле. Но я хочу, когда есть определенное условие, только тогда оно отображается. Я использую javascript для этого, но хочу изменить. – ha22109
Затем вы выходите за рамки администратора django. Весь смысл администратора - мгновенно получить администратор функциональной модели прямо из коробки. Маршрут javascript не является плохим решением. – Soviut