Spec-Zone.ru › Wagtail 3

Модель документов пользовательского типа

Можно использовать альтернативную Document модель для добавления пользовательского поведения и дополнительных полей.

Для этого в проекте необходимо выполнить следующие шаги:

  • Создайте новую модель документов, унаследованную от wagtail.documents.models.AbstractDocument. Именно здесь вы добавите дополнительные поля.
  • Укажите WAGTAILDOCS_DOCUMENT_MODEL на новую модель.

Вот пример:

# models.py
from django.db import models

from wagtail.documents.models import Document, AbstractDocument

class CustomDocument(AbstractDocument):
    # Custom field example:
    source = models.CharField(
        max_length=255,
        blank=True,
        null=True
    )

    admin_form_fields = Document.admin_form_fields + (
        # Add all custom fields names to make them appear in the form:
        'source',
    )

Затем в модуле настроек:

# Ensure that you replace app_label with the app you placed your custom
# model in.
WAGTAILDOCS_DOCUMENT_MODEL = 'app_label.CustomDocument'

Примечание

Миграция с встроенной моделью документов

При изменении существующего сайта на использование пользовательской модели документов, документы не будут автоматически скопированы в новую модель. Копирование старых документов в новую модель необходимо выполнить вручную с помощью миграции данных.

Любые шаблоны, которые ссылаются на встроенную модель документов, по-прежнему будут работать как прежде.

Ссылка на модель документов

© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/stable/advanced_topics/documents/custom_document_model.html

Spec-Zone.ru

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