Spec-Zone.ru › Wagtail 2

Настройка CreateView, EditView и DeleteView

ПРИМЕЧАНИЕ: modeladmin предоставляет только функции «создание», «редактирование» и «удаление» для моделей, не являющихся типами страниц (т.е. моделей, не наследующих от wagtailcore.models.Page). Если ваша модель является моделью типа «страница», настройка любого из следующих пунктов не повлияет:

Изменение отображаемых полей в CreateView и EditView

edit_handler может использоваться с любым классом Django models.Model, так же как и с моделями Page или другими моделями, зарегистрированными как Snippets в Wagtail.

Чтобы изменить способ отображения вашей MyPageModel в CreateView и EditView, просто определите атрибут edit_handler или panels в классе вашей модели.

class MyPageModel(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    address = models.TextField()

    panels = [
        MultiFieldPanel([
            FieldRowPanel([
                FieldPanel('first_name', classname='fn'),
                FieldPanel('last_name', classname='ln'),
            ]),
            FieldPanel('address', classname='custom1',)
        ])
    ]

Или, как альтернатива:

class MyPageModel(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    address = models.TextField()

    custom_panels = [
        MultiFieldPanel([
            FieldRowPanel([
                FieldPanel('first_name', classname='fn'),
                FieldPanel('last_name', classname='ln'),
            ]),
            FieldPanel('address', classname='custom1',)
        ])
    ]
    edit_handler = ObjectList(custom_panels)
    # or
    edit_handler = TabbedInterface([
        ObjectList(custom_panels, heading='First Tab'),
        ObjectList(...)
    ])

edit_handler и panels можно альтернативно определить в определении ModelAdmin. Эта функция особенно полезна в тех случаях, когда вам нужно работать с моделями, которые «недоступны» (например, из-за того, что они являются частью стороннего пакета).

class BookAdmin(ModelAdmin):
    model = Book

    panels = [
        FieldPanel('title'),
        FieldPanel('author'),
    ]

Или, как альтернатива:

class BookAdmin(ModelAdmin):
    model = Book

    custom_panels = [
        FieldPanel('title'),
        FieldPanel('author'),
    ]
    edit_handler = ObjectList(custom_panels)

ModelAdmin.form_view_extra_css

Ожидаемое значение: Список имен путей дополнительных стилей, которые необходимо добавить в CreateView и EditView

Дополнительную информацию можно найти в следующем разделе документации: Добавление дополнительных таблиц стилей и/или JavaScript

ModelAdmin.form_view_extra_js

Ожидаемое значение: Список имен путей дополнительных js-файлов, которые необходимо добавить в CreateView и EditView

Дополнительную информацию можно найти в следующем разделе документации: Добавление дополнительных таблиц стилей и/или JavaScript

ModelAdmin.create_template_name

Ожидаемое значение: Путь к настраиваемому шаблону для использования в CreateView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение шаблонов

ModelAdmin.create_view_class

Ожидаемое значение: Настраиваемый класс view для замены modeladmin.views.CreateView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение представлений

ModelAdmin.edit_template_name

Ожидаемое значение: Путь к настраиваемому шаблону для использования в EditView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение шаблонов

ModelAdmin.edit_view_class

Ожидаемое значение: Настраиваемый класс view для замены modeladmin.views.EditView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение представлений

ModelAdmin.delete_template_name

Ожидаемое значение: Путь к настраиваемому шаблону для использования в DeleteView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение шаблонов

ModelAdmin.delete_view_class

Ожидаемое значение: Настраиваемый класс view для замены modeladmin.views.DeleteView

Дополнительную информацию можно найти в следующем разделе документации: Переопределение представлений

ModelAdmin.form_fields_exclude

Ожидаемое значение: Список или кортеж имён полей

При использовании CreateView или EditView для создания или обновления экземпляров модели это значение будет передано форме редактирования, чтобы исключить поля с указанными именами из формы. Это особенно полезно при регистрации классов ModelAdmin для моделей из сторонних приложений, где определение конфигураций панели в самой модели более сложно.

ModelAdmin.prepopulated_fields

Ожидаемое значение: Словарь, сопоставляющий поля предварительной заполнения с кортежем полей для предварительной заполнения

При использовании CreateView или EditView для создания или обновления экземпляров модели поля, соответствующие ключам в словаре, предварительно заполняются полями из соответствующего кортежа. Основное применение этой функциональности заключается в автоматическом генерации значения для полей SlugField из одного или нескольких других полей. Сгенерированное значение формируется путем конкатенации значений исходных полей, а затем преобразования этого результата в допустимый слаг (например, замена пробелов на тире; приведение букв ASCII к нижнему регистру; удаление различных английских стоп-слов, таких как «a», «an», «as» и т.п.).

Поля предварительной заполнения не изменяются JavaScript после сохранения значения. Обычно нежелательно, чтобы слоги менялись (что приведет к изменению URL объекта, если слаг используется в нем).

Поля предварительной заполнения не принимают поля DateTimeField, ForeignKey, OneToOneField и ManyToManyField.

ModelAdmin.get_edit_handler()

Должно вернуть: Экземпляр wagtail.admin.edit_handlers.ObjectList

Возвращает соответствующий edit_handler для класса modeladmin. edit_handlers может быть определено либо в самой модели, либо в modeladmin (как свойство edit_handler или panels). Возвращается к извлечению определений панели/обработчика редактирования из класса модели.

  • Предыдущая Настройка IndexView — представление списка
  • Следующая Включение и настройка InspectView

Содержание страницы

  • Настройка CreateView, EditView и DeleteView
    • Изменение отображаемых полей в CreateView и EditView
    • ModelAdmin.form_view_extra_css
    • ModelAdmin.form_view_extra_js
    • ModelAdmin.create_template_name
    • ModelAdmin.create_view_class
    • ModelAdmin.edit_template_name
    • ModelAdmin.edit_view_class
    • ModelAdmin.delete_template_name
    • ModelAdmin.delete_view_class
    • ModelAdmin.form_fields_exclude
    • ModelAdmin.prepopulated_fields
    • ModelAdmin.get_edit_handler()

© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/reference/contrib/modeladmin/create_edit_delete_views.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API