Приложение для Django, расширяющее возможности по работе с формами.
Особенности:

  • Поддержка отрисовки полной формы (включая пролог и кнопку отправки);
  • Поддержка вложенных форм (представьте вложенную форму полем основной);
  • Группировка полей;
  • Декларативный стиль описания атрибутов для элементов формы:
  • Декларативное описание раскладки формы с поддержкой упорядочивания полей;
  • Поддержка Aria (Accessible Rich Internet Applications);

Стили, доступные из коробки:

  • Без CSS
  • Bootstrap 4

Пример использования:

    from django.shortcuts import render
from siteforms.composers.bootstrap4 import Bootstrap4, FORM, ALL_FIELDS
from siteforms.toolbox import ModelForm


class MyForm(ModelForm):
"""Демонстрация работы siteforms."""

disabled_fields = {'somefield'} # Один из способов отключения полей.
hidden_fields = {'otherfield'} # Один из способов спрятать поля.

class Composer(Bootstrap4):
"""Так говорим, что компоновать форму нужно под Bootstrap 4.
Внутри этого класса можно произвести дополнительные настройки,
если требуется.

"""
opt_size='sm'
# Bootstrap 4 поддерживает размеры полей ввода. Деламе поля маленькими.

# Атрибуты элементов (полей, груп, форм, пр.) можно задать в attrs.
# Добавим атриут rows=2 полю contents нашей модели.
attrs={'contents': {'rows': 2}},

# Определить группы элементов можно так:
groups={
'basic': 'Базовые поля',
'other': 'Прочие поля',
},

# А так можно влять на раскладку полей на странице:
layout = {
FORM: {
'basic': [ # Сначала выведем группу basic.
['title', 'date_created'], # Поместим эти два поля в один ряд.
'contents', # Это поле поместим в отдельный ряд формы.
],
# Остальные поля поместим в группу other.
'other': ALL_FIELDS,
}
}

class Meta:
model = MyModel # Допустим модель у нас уже есть.
fields = '__all__'

def my_view(request):
# Инициализируем форму данными из POST.
my_form = MyForm(request=request, src='POST')
is_valid = form.is_valid() # Валидируем.
return render(request, 'mytemplate.html', {'form': my_form})

За более подробным описанием и примерами обратитесь к документации (англ.).

Категории

Окружение
Проект

На заметку
Зарегистрированные пользователи могут добавлять Видео.