Spec-Zone.ru › Wagtail 3

Настройка 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 на основе одного или нескольких других полей. Сгенерированное значение формируется путем конкатенации значений исходных полей, а затем преобразования этого результата в допустимый slug (например, замена пробелов на дефисы, приведение ASCII букв к нижнему регистру и удаление различных английских стоп-слов, таких как «a», «an», «as» и подобных).

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

prepopulated_fields не принимает поля DateTimeField, ForeignKey, OneToOneField и ManyToManyField.

ModelAdmin.get_edit_handler()

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

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

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

Spec-Zone.ru

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