Name | ttoolly JSON |
Version |
0.37.18
JSON |
| download |
home_page | |
Summary | Django test tools |
upload_time | 2023-03-24 07:09:20 |
maintainer | |
docs_url | None |
author | Polina Efremova |
requires_python | |
license | |
keywords |
django
testing
test tool
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
ttoolly
=======
.. image:: https://travis-ci.org/pefremova/ttoolly.svg?branch=django1.10
:target: https://travis-ci.org/pefremova/ttoolly
:alt: Build Status
.. image:: https://coveralls.io/repos/github/pefremova/ttoolly/badge.svg?branch=django1.10
:target: https://coveralls.io/github/pefremova/ttoolly?branch=django1.10
:alt: Coverage Status
Django test tools. Django >= 1.8
Наборы стандартных проверок для Django-форм
Пример теста `tests/tests_for_project.py <http://tests/tests_for_project.py>`_
Описание тестовых классов и их параметров для описания форм
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**GlobalTestMixIn**
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - all_unique
- None
- не использовать
-
* - choice_fields_values
- {}
- варианты значений для select, multiselect полей
- choice_fields_values = {'field1': (value1, value2)}
* - custom_error_messages
- {}
- Кастомные сообщения для определенных полей
- custom_error_messages = {'field1': {message_type: u"Текст сообщения об ошибке."}}
* - errors
- []
- не переопределять (хранит значения ошибок для текущего теста)
-
* - files
- []
- список файлов в текущем тесте (используется для закрытия файлов в конце каждого теста)
- f = open(filename); self.fields.append(f)
* - maxDiff
- None
- unittest.TestCase.maxDiff
-
* - non_field_error_key
- '__all__'
- поле, в котором возвращаются общие (не привязанные к конкретному полю) для формы ошибки
-
* - unique_fields
- None
- список уникальных полей
- unique_fields = ('field1', ('field2', 'field3'), 'field4')
* - unique_with_case
- ()
- Список уникальных полей, для которых при проверке униклаьности учитывается регистр
- unique_with_case = ('field1', )
**FormTestMixIn(GlobalTestMixIn)**
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
- включает проверки
* - obj
- None
- модель, для котороый выполняются все проверки. Является необходимым для запуска любого теста
-
-
* - additional_params
- {}
- Дополнительные параметры для всех выполняющихся в тестах запросов
- additional_params = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
-
* - all_fields
- default_params.keys()
- Список всех полей, которые должны присутствовать на форме.
- all_fields = ('field1', 'field2')
- Проверка наличия полей на форме. Все поля заполнены (исключаются указанные в one_of_fields)
* - all_fields_add
- all_fields or default_params_add.keys()
- Список всех полей, которые должны присутствовать на форме создания
- all_fields_add = ('field1', 'field2')
-
* - all_fields_edit
- all_fields or default_params_edit.keys()
- Список всех полей, которые должны присутствовать на форме редактирования
- all_fields_edit = ('field1', 'field2')
-
* - check_null
- None
- Включать ли проверки на NULL байт?
- check_null = True
- NULL байт в строковых полях и именах файлов
* - check_null_file_positive
- False, если установлено check_null
-
- check_null_file_positive = True
- NULL байт вырезается из имен файлов при сохранении
* - check_null_file_negative
- True, если установлено check_null
-
- check_null_file_negative = True
- NULL байт в именах файлов. Ожидается сообщение об ошибке
* - check_null_str_positive
- False, если установлено check_null
-
- check_null_str_positive = True
- NULL байт вырезается из строковых полей при сохранении
* - check_null_str_negative
- True, если установлено check_null
-
- check_null_str_negative = True
- NULL байт в строковых полях. Ожидается сообщение об ошибке
* - choice_fields
- []
- Список select полей
- choice_fields = ('field1', 'field2')
- Невалидные значения в полях (строка, число)
* - choice_fields_add
- choice_fields
- Список select полей на форме создания
- choice_fields_add = ('field1', 'field2')
-
* - choice_fields_edit
- choice_fields
- Список select полей на форме редактирования
- choice_fields_edit = ('field1', 'field2')
-
* - choice_fields_with_value_in_error
- []
- Список select полей, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение
- choice_fields_with_value_in_error = ('field1', 'field2')
- Невалидные значения в полях (строка, число)
* - choice_fields_add_with_value_in_error
- choice_fields_with_value_in_error
- Список select полей на странице создания, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение
- choice_fields_add_with_value_in_error = ('field1', 'field2')
-
* - choice_fields_edit_with_value_in_error
- choice_fields_with_value_in_error
- Список select полей на странице создания, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение
- choice_fields_edit_with_value_in_error = ('field1', 'field2')
-
* - default_params
- {}
- Параметры по умолчанию, которые используются при создании/редактировании объекта
- default_params = {'field1': value1, 'field2: value2}
-
* - default_params_add
- default_params
- Параметры по умолчанию, которые используются при создании объекта
- default_params_add = {'field1': value1, 'field2: value2}
-
* - default_params_edit
- default_params
- Параметры по умолчанию, которые используются при редактировании объекта
- default_params_edit = {'field1': value1, 'field2: value2}
-
* - date_fields
- Ключи из default_params_add, default_params_edit, значения из all_fields_add, all_fields_edit, содержащие в названии 'date'
- Названия полей, содержащих даты
- date_fields = ('field1', 'field2')
-
* - datetime_fields
- ()
- Названия полей, содержащих datetime
- datetime_fields = ('field1', 'field2')
-
* - digital_fields
- None
- Названия полей, содержащих числа
- digital_fields = ('field1', 'field2')
- Позитивные: Максимальные, минимальные числовые значения. Негативные: Значения больше максимального, меньше минимального, строки
* - digital_fields_add
- digital_fields или default_params_add.keys(), для которых значения являются числами и не указаны в choice_fields_add, choice_fields_add_with_value_in_error
- Названия полей на форме создания, содержащих числа
- digital_fields_add = ('field1', 'field2')
-
* - digital_fields_edit
- digital_fields или default_params_edit.keys(), для которых значения являются числами и не указаны в choice_fields_edit, choice_fields_edit_with_value_in_error
- Названия полей на форме редактирования, содержащих числа
- digital_fields_edit = ('field1', 'field2')
-
* - disabled_fields
- None
- Названия полей, выводящихся на форме, но недоступных для редактирования
- disabled_fields = ('field1', 'field2')
- Наличие полей на форме. Попытка передать значения в недоступных полях при сохранении
* - disabled_fields_add
- disabled_fields
- Названия полей, выводящихся на форме создания, но недоступных для редактирования
- disabled_fields_add = ('field1', 'field2')
-
* - disabled_fields_edit
- disabled_fields
- Названия полей, выводящихся на форме редактирования, но недоступных для редактирования
- disabled_fields_edit = ('field1', 'field2')
-
* - email_fields
- None
- Названия полей для ввода email
- email_fields = ('field1', 'field2')
- Невалидные (строка, не являющаяся email'ом) значения в полях
* - email_fields_add
- email_fields или ключи из default_params_add, содержащие в названии 'email'
- Названия полей для ввода email на форме создания
- email_fields_add = ('field1', 'field2')
-
* - email_fields_edit
- email_fields или ключи из default_params_edit, содержащие в названии 'email'
- Названия полей для ввода email на форме редактирования
- email_fields_edit = ('field1', 'field2')
-
* - exclude_from_check
- []
- Названия полей, которые нужно исключить из проверки значений во всех тестах. Актуально, например, для полей, содержащих дату обновления объекта
- exclude_from_check = ('field1', 'field2')
-
* - exclude_from_check_add
- exclude_from_check
- Названия полей, которые нужно исключить из проверки значений в тестах создания объекта
- exclude_from_check_add = ('field1', 'field2')
-
* - exclude_from_check_edit
- exclude_from_check
- Названия полей, которые нужно исключить из проверки значений в тестах редактирования объекта
- exclude_from_check_edit = ('field1', 'field2')
-
* - fields_helptext
- None
- Хелптекст в полях формы
- ``fields_helptext = {'url': 'For example "http://example.com/test"'}``
- Проверка наличия хелптекста в соответствующих полях формы
* - fields_helptext_add
- fields_helptext
- Хелптекст в полях формы
- ``fields_helptext_add = {'url': 'For example "http://example.com/test"'}``
- Проверка наличия хелптекста в соответствующих полях формы создания
* - fields_helptext_edit
- fields_helptext
- Хелптекст в полях формы
- ``fields_helptext_edit = {'url': 'For example "http://example.com/test"'}``
- Проверка наличия хелптекста в соответствующих полях формы редактирования
* - file_fields_params
- {}
- Параметры файловых полей
- ``file_fields_params = {'field_name': {'extensions': ('jpg', 'txt'), 'max_count': 3, 'one_max_size': '3Mb', 'wrong_extensions': ('rar', 'zip'), 'min_width': 200, 'min_height': 100, 'max_width': 300, 'max_height': 200}}``
-
* - file_fields_params_add
- file_fields_params
- Параметры файловых полей на форме создания
-
-
* - file_fields_params_edit
- file_fields_params
- Параметры файловых полей на форме редактирования
-
-
* - filter_params
- None
- Названия параметров для фильтрации списка объектов
- filter_params = ('filter_name1', ('filter_name2', 'any_valid_value'), )
- Для тестов должен быть задан также url_list. Проверка с пустым, либо указанным в параметрах значением. Проверка со случайными значениями. В любом случае ожидается ответ 200
* - hidden_fields
- None
- Названия полей, выводящихся на форме в скрытом виде
- hidden_fields = ('field1', 'field2')
- Проверка наличия полей на форме
* - hidden_fields_add
- hidden_fields
- Названия полей, выводящихся на форме создания в скрытом виде
- hidden_fields_add = ('field1', 'field2')
-
* - hidden_fields_edit
- hidden_fields
- Названия полей, выводящихся на форме редактирования в скрытом виде
- hidden_fields_edit = ('field1', 'field2')
-
* - int_fields
- None
- Названия полей, содержащих целые числа
- int_fields = ('field1', 'field2')
- см. digital_fields
* - int_fields_add
- int_fields или поля из digital_fields_add, для которых значения полей в default_params_add целочисленные
- Названия полей на форме создания, содержащих целые числа
- int_fields_add = ('field1', 'field2')
-
* - int_fields_edit
- int_fields или поля из digital_fields_edit, для которых значения полей в default_params_edit целочисленные
- Названия полей на форме редактирования, содержащих целые числа
- int_fields_edit = ('field1', 'field2')
-
* - intervals
- None
- Существующие на форме временные интервалы
- ``intervals = (('field1', field2'), ('field3, 'field4', '>='))``
- Окончание интервала больше, меньше, равно началу интервала
* - max_blocks
- None
- Словарь количества строка в инлайн блоках
- max_blocks = {'inline_block_1': 10}
- Максимальное число строк, число строк больше максимального
* - max_fields_length
- {}
- Словарь максимальной допустимой длины значений (для текстовых) или максимального допустимого значения (для числовых) в полях
- max_fields_length = {'string_field_name': 100, 'digital_field_name': 99999}
- Максимальные значения (для файловых полей в тестах редактирования сохранение и проверка выполняется дважды). Значения больше максимальных.
* - min_fields_length
- {}
- Словарь минимальной допустимой длины значений (для текстовых) или минимального допустимого значения (для числовых) в полях
- min_fields_length = {'string_field_name': 5, 'digital_field_name': -1}
- Минимальные значения. Значения меньше минимальных
* - multiselect_fields
- None
- Список multiselect полей
- multiselect_fields = ('field1', 'field2')
- Невалидные значения (число)
* - multiselect_fields_add
- multiselect_fields или default_params_add.keys() если значения для них являются списками
- Список multiselect полей на форме создания
- multiselect_fields_add = ('field1', 'field2')
-
* - multiselect_fields_edit
- multiselect_fields или default_params_edit.keys() если значения для них являются списками
- Список multiselect полей на форме редактирования
- multiselect_fields_edit = ('field1', 'field2')
-
* - not_empty_fields
- None
- Обязательные для заполнения поля
- not_empty_fields = ('field1', ('field2', 'field3'))
- Заполнены только обязательные поля. Одно из обязательных полей (выполняется для всех) не заполнено.
* - not_empty_fields_add
- not_empty_fields или required_fields_add или default_params_add.keys()
- Обязательные для заполнения поля на форме создания
- not_empty_fields_add = ('field1', ('field2', 'field3'))
-
* - not_empty_fields_edit
- not_empty_fields или required_fields_edit или default_params_edit.keys()
- Обязательные для заполнения поля на форме редактирования
- not_empty_fields_edit = ('field1', ('field2', 'field3'))
-
* - only_if_value
- None
- Поля, доступные для в зависимости от значения в другом поле
- only_if_value = {'field1': {'field2': 'value1'}}
- Указано значение, включающее поле. Указано другое значение, поле заполнено.
* - one_of_fields
- None
- Список наборов полей, которые могут быть заполнены только отдельно друг от друга
- one_of_fields = (('field1', 'field2'), ('field1', 'field3', 'field4'))
- Заполнено одно из группы. Одновременно заполненные поля (если связанных полей больше трех, разбиваются также попарно)
* - one_of_fields_add
- one_of_fields
- Список наборов полей, которые могут быть заполнены только отдельно друг от друга на форме создания
- one_of_fields_add = (('field1', 'field2'), ('field1', 'field3', 'field4'))
-
* - one_of_fields_edit
- one_of_fields
- Список наборов полей, которые могут быть заполнены только отдельно друг от друга на форме редактирования
- one_of_fields_edit = (('field1', 'field2'), ('field1', 'field3', 'field4'))
-
* - required_fields
- None
- Поля, которые должны присутствовать в запросе.
- required_fields = ('field1', ('field2', 'field3'))
- Заполнены только обязательные поля. Одно из обязательных полей (выполняется для всех) отсутствует
* - required_fields_add
- required_fields или default_params_add.keys()
- Обязательные для заполнения поля на форме создания
- required_fields_add = ('field1', ('field2', 'field3'))
-
* - required_fields_edit
- required_fields или default_params_edit.keys()
- Обязательные для заполнения поля на форме редактирования
- required_fields_edit = ('field1', ('field2', 'field3'))
-
* - required_if
- None
- Поля, обязательные для заполнения, если заполнено другое поле
- ``required_if = {'field1': 'field2', 'field2': ('field1', 'field3')}``
- Заполнено основное, но не заполнено зависимое. Не заполнены основное и зависимое. Заполнено и основное, и зависимое.
* - required_if_value
- None
- Поля, обязательные для заполнения в зависимости от значения в другом поле
- required_if_value = {'field1': {'field2': 'value1'}}
- Указано значение, включающее обязательность: поле заполнено, поле не заполнено. Указано другое значение: поле заполнено, поле не заполнено.
* - required_if_add
- required_if или {}
- Поля, обязательные для заполнения, если заполнено другое поле на форме создания
- ``required_if_add = {'field1': 'field2', 'field2': ('field1', 'field3')}``
-
* - required_if_edit
- required_if или {}
- Поля, обязательные для заполнения, если заполнено другое поле на форме редактирования
- ``required_if_edit = {'field1': 'field2', 'field2': ('field1', 'field3')}``
-
* - status_code_error
- 200
- Статус ответа при наличии ошибок
-
-
* - status_code_not_exist
- 404
- Статус ответа при манипуляциях с несуществующим объектом
-
-
* - status_code_success_add
- 200
- Статус ответа при успешном создании объекта
-
-
* - status_code_success_edit
- 200
- Статус ответа при успешном редактировании объекта
-
-
* - unique_fields
- None
- список уникальных полей
- unique_fields = ('field1', ('field2', 'field3'), 'field4')
- Объект с такими полями уже существует. Для текстовых полей проверяется также в uppercase
* - unique_fields_add
- unique_fields (учитывается наличие в all_fields_add)
- Cписок уникальных полей на форме создания
- unique_fields_add = ('field1', ('field2', 'field3'), 'field4')
-
* - unique_fields_edit
- unique_fields (учитывается наличие в all_fields_edit)
- Cписок уникальных полей на форме редактирования
- unique_fields_edit = ('field1', ('field2', 'field3'), 'field4')
-
* - url_list
-
- URL, на котором находится список объектов, например, в админке. Включает все тесты, связанные со списком
- url_list = 'modelname:url_name' или url_list = '/path/to/list/'
-
* - with_captcha
- Наличие поля 'captcha' в all_fields или в all_fields_add или в all_fields_edit
- Используется ли капча на форме. Если True, во всех тестах отправляемые параметры дополняются полями капчи
-
-
*file_fields_params*
.. list-table::
:header-rows: 1
* - название поля
- описание
- включает проверки
* - extensions
- разрешенные расширения
- Все валидные расширения. Невалидные расширения.
* - wrong_extensions
- дополнительные невалидные расширения
- Добавляет значения для проверки в тесте невалидных расширений
* - max_count
- максимальное количество файлов (для полей с множественным выбором файлов)
- Максимальное число файлов. Число файлов больше максимального
* - one_max_size
- максимальный размер файла (одного файла для полей с множественным выбором файлов)
- Максимальный размер файла. Размер файла больше максимального
* - min_width
- минимальная ширина изображения
- Изображение с минимальной шириной. Изображение с шириной меньше минимальной
* - min_height
- минимальная высота изображения
- Изображение с минимальной высотой. Изображение с высотой меньше минимальной
* - max_width
- максимальная ширина изображения
- Изображение с максимальной шириной. Изображение с шириной меньше максимальной
* - max_height
- максимальная высота изображения
- Изображение с максимальной высотой. Изображение с высотой меньше максимальной
*custom_error_messages*
(То же используется в settings.ERROR_MESSAGES)
.. list-table::
:header-rows: 1
* - название
- описание
* - required
- * Не заполнено обязательное поле
* Отсутствует обязательное поле
* - without_required
- Отсутствует обязательное поле
* - empty_required
- Не заполнено обязательное поле
* - max_length
- * Превышена максимальная длина текста в поле
* Превышено максимальное значение в числовом поле
* Превышена максимальная длина имени файла
* - max_length_digital
- Превышено максимальное значение в числовом поле
* - max_length_file
- Превышена максимальная длина имени файла
* - min_length
- * Длина текста в поле меньше минимальной
* Числовое значение меньше минимального
* - min_length_digital
- Числовое значение меньше минимального
* - wrong_value
- В селект/мультиселект поле указано невалидное значение
* - wrong_value_int
- В целочисленном поле указано не целое число
* - wrong_value_digital
- В числовом поле указано не число
* - wrong_value_email
- В поле адреса электронной почты указано невалидное значение
* - unique
- Объект с указанными уникальными параметрами уже существует
* - delete_not_exists
- Удаляемый объект не существует
* - recovery_not_exists
- Восстанавливаемый из корзины объект не существует
* - empty_file
- Пустой файл
* - max_count_file
- В поле со множественной загрузкой загружено больше допустимого количества файлов
* - max_size_file
- Превышен максимальный размер файла
* - max_sum_size_file
- В поле со множественной загрузкой файлов превышен допустимый суммарный размер файлов
* - wrong_extension
- Загружен файл с недопустимым расширением
* - min_dimensions
- Размеры загруженного изображения меньше, чем минимальные допустимые
* - one_of
- Поля, которые могут быть заполнены только по отдельности, заполнены вместе
* - max_block_count
- Превышено максимальное число инлайн-полей в блоке
* - not_exist
- Объект не существует (используется для проверки message в тестах редактирования и удаления)
**FormAddTestMixIn(FormTestMixIn)**
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - url_add
- ''
- URL, по которому добавляются объекты. Включает все тесты на добавление
- url_add = 'modelname:url_name_add' или url_add = '/path/to/add/'
**FormEditTestMixIn(FormTestMixIn)**
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - second_save_available
- True
- Доступно ли повторное сохранение объекта при редактировании. Позволяет выключить проверки повторного сохранения, если после редактирования объект меняет статус или по другим причинам становится нередактируемым
- second_save_available = False
* - url_edit
- ''
- URL, по которому редактируются объекты. Включает все тесты на редактирование
- url_edit = 'modelname:url_name_change' или url_edit = '/path/to/edit/1/' (в этом случае по умолчанию для редактирования будет браться объект с pk=1)
**FormDeleteTestMixIn(FormTestMixIn)**
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - url_delete
- ''
- URL, по которому удаляются объекты
- url_delete = 'modelname:url_name_delete' или url_delete = '/path/to/delete/1/'
**FormRemoveTestMixIn(FormTestMixIn)**
Тесты для объектов, удаление которых происходит в корзину
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - url_delete
- ''
- URL, по которому удаляются объекты
- url_delete = 'modelname:url_name_remove' или url_delete = '/path/to/remove/1/'
* - url_recovery
- ''
- URL, по которому выполняется восстановление объекта
- url_recovery = 'modelname:url_name_recovery' или url_recovery = '/path/to/recovery/1/'
* - url_edit_in_trash
- ''
- URL, по которому открывается страница редактирования объекта в корзине
- url_edit_in_trash = 'modelname:url_name_trash_edit' или url_edit_in_trash = '/path/to/trash/edit/1/'
**ChangePasswordMixIn(GlobalTestMixIn, LoginMixIn)**
Тесты смены пароля пользователя
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - current_password
- 'qwerty'
- Пароль редактируемого пользователя
- current_password = 'qwerty'
* - field_old_password
- None
- Поле для ввода старого пароля
- field_old_password = 'old_password'
* - field_password
- None
- Поле для ввода нового пароля
- field_password = 'password1'
* - field_password_repeat
- None
- Поле для ввода подтверждения нового пароля
- field_password_repeat = 'password2'
* - password_max_length
- 128
- Максимальная допустимая длина пароля
- password_max_length = 128
* - password_min_length
- 6
- Минимальная допустимая длина пароля
- password_min_length = 6
* - password_params
- default_params или {field_old_password: current_password, field_password: some_new_value, field_password_repeat: some_new_value}
- Параметры по умолчанию, которые используются для смены пароля
- password_params = {'password1': 'qwe123', 'password2': 'qwe123'}
* - obj
- None
- Модель пользователя
- obj = User
* - password_positive_values
- [get_randname(10, 'w') + str(randint(0, 9)), str(randint(0, 9)) + get_randname(10, 'w'), get_randname(10, 'w').upper() + str(randint(0, 9)), ]
- Допустимые значения для пароля
- password_positive_values = ['qwe+', 'qwe*', 'QwE1']
* - password_similar_fields
- None
- Поля в модели пользователя, на значения которых не должен быть похож новый пароль
- password_similar_fields = ('email', 'first_name')
* - password_wrong_values
- ['йцукенг', ]
- Недопустимые значения для пароля (с допустимой длиной)
- password_wrong_values = ['qwerty', 'йцукен', '123456']
* - url_change_password
- ''
- URL, по которому выполняется смена пароля. Если не содержит pk пользователя, задавать как /url/, иначе - можно задавать через urlname
- url_change_password = 'admin:auth_user_password_change'
**LoginTestMixIn**
Тесты логина пользователя
.. list-table::
:header-rows: 1
* - название поля
- значение по умолчанию
- описание
- пример использования
* - blacklist_model
- None
- Модель объекта, в котором хранится информация о некорректных логинах с ip
- blacklist_model = BlackList
* - default_params
- {self.field_username: self.username, self.field_password: self.password}
- Параметры по умолчанию, которые используются для логина пользователя
- default_params = {'username': 'test@test.test', 'password': 'qwerty'}
* - field_password
- 'password'
- Поле для ввода пароля
- field_password = 'password'
* - field_username
- 'username'
- Поле для ввода юзернейма
- field_username = 'username'
* - password
- 'qwerty'
- Пароль тестируемого пользователя
- password = 'qwerty'
* - passwords_for_check
- []
- Пароли для проверки (будут проверены все)
- passwords_for_check = ['qwerty', 'йцукен', '123456']
* - obj
- None
- Модель пользователя
- obj = User
* - username
- None
- Юзернейм тестируемого пользователя
- username = 'test@test.test'
* - url_login
- ''
- URL для логина
- url_login = 'admin:login'
* - url_redirect_to
- ''
- URL на который выполняется редирект после логина
- url_redirect_to = 'accounts:cabinet'
* - urls_for_redirect
- ['/', ]
- Урлы, доступные пользователю (будет выбран один для проверки редиректа)
- urls_for_redirect = ['accounts:profile',]
**Дополнительные настройки**
Могут быть переопределены в django settings
.. list-table::
:header-rows: 1
* - Название
- Значение по умолчанию
- Описание
* - CAPTCHA_TYPE
- 'simplecaptcha'
- тип используемой в проекте капчи. 'supercaptcha' или 'simplecaptcha'
* - COLORIZE_TESTS
- False
- раскраска вывода результатов тестов
* - LOGIN_URL_NAME
- 'login'
- url, по которому выполняется логин
* - LOGOUT_URL_NAME
- 'auth_logout'
- url, по которому выполняется логаут
* - ERROR_MESSAGES
- {}
- переопределение сообщений об ошибках для всего проекта
* - SIMPLE_TEST_EMAIL
- False
- генерация случайных значений адресов электронной почты исключая спецсимволы
* - TEST_DATE_INPUT_FORMAT
- settings.DATE_INPUT_FORMATS[0]
- формат входных значений дат
* - TEST_DATETIME_INPUT_FORMAT
- settings.DATETIME_INPUT_FORMATS[0]
- формат входных значений в datetime-полях
* - TEST_TIME_INPUT_FORMAT
- settings.TIME_INPUT_FORMATS[0]
- формат входных значений времени
* - TEST_GENERATE_REAL_SIZE_FILE
- True
- генерация файлов с указанным размером. При False для обработки файлов используется FakeSizeMemoryFileUploadHandler
* - TEST_REAL_FORM_FIELDS
- False
- получение полей из ответа сервера из content, а не context
* - TEST_SPEEDUP_EXPERIMENTAL
- False
- ускоряет выполнение тестов путем ранней обработки декораторов
* - TEST_TRACEBACK_LIMIT
- None
- глубина трейсбека в результатах тестов
* - TEST_USE_REAL_SETTINGS
- False
- если True, не переопределяются номера баз редиса, используются реальные пути для сохранения файлов
Raw data
{
"_id": null,
"home_page": "",
"name": "ttoolly",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "django,testing,test tool",
"author": "Polina Efremova",
"author_email": "pefremova@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/38/e0/e968e3a028532b0a24f7cebf3a8f8de1abaedf79a654e471cc5ddc126cd3/ttoolly-0.37.18.tar.gz",
"platform": null,
"description": "ttoolly\n=======\n\n\n.. image:: https://travis-ci.org/pefremova/ttoolly.svg?branch=django1.10\n :target: https://travis-ci.org/pefremova/ttoolly\n :alt: Build Status\n \n.. image:: https://coveralls.io/repos/github/pefremova/ttoolly/badge.svg?branch=django1.10\n :target: https://coveralls.io/github/pefremova/ttoolly?branch=django1.10\n :alt: Coverage Status\n\n\nDjango test tools. Django >= 1.8\n\n\u041d\u0430\u0431\u043e\u0440\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0434\u043b\u044f Django-\u0444\u043e\u0440\u043c\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u0441\u0442\u0430 `tests/tests_for_project.py <http://tests/tests_for_project.py>`_\n\n\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n**GlobalTestMixIn**\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - all_unique\n - None\n - \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\n - \n * - choice_fields_values\n - {}\n - \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f select, multiselect \u043f\u043e\u043b\u0435\u0439\n - choice_fields_values = {'field1': (value1, value2)}\n * - custom_error_messages\n - {}\n - \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439\n - custom_error_messages = {'field1': {message_type: u\"\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.\"}}\n * - errors\n - []\n - \u043d\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c (\u0445\u0440\u0430\u043d\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0430)\n - \n * - files\n - []\n - \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0442\u0435\u0441\u0442\u0435 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430)\n - f = open(filename); self.fields.append(f)\n * - maxDiff\n - None\n - unittest.TestCase.maxDiff\n - \n * - non_field_error_key\n - '__all__'\n - \u043f\u043e\u043b\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u0449\u0438\u0435 (\u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e) \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u044b \u043e\u0448\u0438\u0431\u043a\u0438\n - \n * - unique_fields\n - None\n - \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439\n - unique_fields = ('field1', ('field2', 'field3'), 'field4')\n * - unique_with_case\n - ()\n - \u0421\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0443\u043d\u0438\u043a\u043b\u0430\u044c\u043d\u043e\u0441\u0442\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\n - unique_with_case = ('field1', )\n\n\n**FormTestMixIn(GlobalTestMixIn)**\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n - \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\n * - obj\n - None\n - \u043c\u043e\u0434\u0435\u043b\u044c, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430\n - \n - \n * - additional_params\n - {}\n - \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n - additional_params = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}\n - \n * - all_fields\n - default_params.keys()\n - \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0444\u043e\u0440\u043c\u0435.\n - all_fields = ('field1', 'field2')\n - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435. \u0412\u0441\u0435 \u043f\u043e\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b (\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 one_of_fields)\n * - all_fields_add\n - all_fields or default_params_add.keys()\n - \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - all_fields_add = ('field1', 'field2')\n - \n * - all_fields_edit\n - all_fields or default_params_edit.keys()\n - \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - all_fields_edit = ('field1', 'field2')\n - \n * - check_null\n - None\n - \u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 NULL \u0431\u0430\u0439\u0442?\n - check_null = True\n - NULL \u0431\u0430\u0439\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 \u0438 \u0438\u043c\u0435\u043d\u0430\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\n * - check_null_file_positive\n - False, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e check_null\n -\n - check_null_file_positive = True\n - NULL \u0431\u0430\u0439\u0442 \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0438\u043c\u0435\u043d \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438\n * - check_null_file_negative\n - True, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e check_null\n -\n - check_null_file_negative = True\n - NULL \u0431\u0430\u0439\u0442 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435\n * - check_null_str_positive\n - False, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e check_null\n -\n - check_null_str_positive = True\n - NULL \u0431\u0430\u0439\u0442 \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438\n * - check_null_str_negative\n - True, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e check_null\n -\n - check_null_str_negative = True\n - NULL \u0431\u0430\u0439\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f\u0445. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435\n * - choice_fields\n - []\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439\n - choice_fields = ('field1', 'field2')\n - \u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u044f\u0445 (\u0441\u0442\u0440\u043e\u043a\u0430, \u0447\u0438\u0441\u043b\u043e)\n * - choice_fields_add\n - choice_fields\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - choice_fields_add = ('field1', 'field2')\n - \n * - choice_fields_edit\n - choice_fields\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - choice_fields_edit = ('field1', 'field2')\n - \n * - choice_fields_with_value_in_error\n - []\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439, \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n - choice_fields_with_value_in_error = ('field1', 'field2')\n - \u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u044f\u0445 (\u0441\u0442\u0440\u043e\u043a\u0430, \u0447\u0438\u0441\u043b\u043e)\n * - choice_fields_add_with_value_in_error\n - choice_fields_with_value_in_error\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n - choice_fields_add_with_value_in_error = ('field1', 'field2')\n - \n * - choice_fields_edit_with_value_in_error\n - choice_fields_with_value_in_error\n - \u0421\u043f\u0438\u0441\u043e\u043a select \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n - choice_fields_edit_with_value_in_error = ('field1', 'field2')\n - \n * - default_params\n - {}\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - default_params = {'field1': value1, 'field2: value2}\n - \n * - default_params_add\n - default_params\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - default_params_add = {'field1': value1, 'field2: value2}\n - \n * - default_params_edit\n - default_params\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - default_params_edit = {'field1': value1, 'field2: value2}\n -\n * - date_fields\n - \u041a\u043b\u044e\u0447\u0438 \u0438\u0437 default_params_add, default_params_edit, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 all_fields_add, all_fields_edit, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 'date'\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0434\u0430\u0442\u044b\n - date_fields = ('field1', 'field2')\n -\n * - datetime_fields\n - ()\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 datetime\n - datetime_fields = ('field1', 'field2')\n -\n * - digital_fields\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0447\u0438\u0441\u043b\u0430\n - digital_fields = ('field1', 'field2')\n - \u041f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0435: \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0435: \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u0441\u0442\u0440\u043e\u043a\u0438\n * - digital_fields_add\n - digital_fields \u0438\u043b\u0438 default_params_add.keys(), \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 choice_fields_add, choice_fields_add_with_value_in_error\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0447\u0438\u0441\u043b\u0430\n - digital_fields_add = ('field1', 'field2')\n - \n * - digital_fields_edit\n - digital_fields \u0438\u043b\u0438 default_params_edit.keys(), \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 choice_fields_edit, choice_fields_edit_with_value_in_error\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0447\u0438\u0441\u043b\u0430\n - digital_fields_edit = ('field1', 'field2')\n - \n * - disabled_fields\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - disabled_fields = ('field1', 'field2')\n - \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438\n * - disabled_fields_add\n - disabled_fields\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - disabled_fields_add = ('field1', 'field2')\n - \n * - disabled_fields_edit\n - disabled_fields\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - disabled_fields_edit = ('field1', 'field2')\n - \n * - email_fields\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 email\n - email_fields = ('field1', 'field2')\n - \u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 (\u0441\u0442\u0440\u043e\u043a\u0430, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0430\u044f\u0441\u044f email'\u043e\u043c) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u044f\u0445\n * - email_fields_add\n - email_fields \u0438\u043b\u0438 \u043a\u043b\u044e\u0447\u0438 \u0438\u0437 default_params_add, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 'email'\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 email \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - email_fields_add = ('field1', 'field2')\n - \n * - email_fields_edit\n - email_fields \u0438\u043b\u0438 \u043a\u043b\u044e\u0447\u0438 \u0438\u0437 default_params_edit, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 'email'\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 email \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - email_fields_edit = ('field1', 'field2')\n - \n * - exclude_from_check\n - []\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u0430\u0445. \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043b\u0435\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0434\u0430\u0442\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - exclude_from_check = ('field1', 'field2')\n - \n * - exclude_from_check_add\n - exclude_from_check\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - exclude_from_check_add = ('field1', 'field2')\n - \n * - exclude_from_check_edit\n - exclude_from_check\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - exclude_from_check_edit = ('field1', 'field2')\n - \n * - fields_helptext\n - None\n - \u0425\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b\n - ``fields_helptext = {'url': 'For example \"http://example.com/test\"'}``\n - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0445\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b\n * - fields_helptext_add\n - fields_helptext\n - \u0425\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b\n - ``fields_helptext_add = {'url': 'For example \"http://example.com/test\"'}``\n - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0445\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n * - fields_helptext_edit\n - fields_helptext\n - \u0425\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b\n - ``fields_helptext_edit = {'url': 'For example \"http://example.com/test\"'}``\n - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0445\u0435\u043b\u043f\u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n * - file_fields_params\n - {}\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439\n - ``file_fields_params = {'field_name': {'extensions': ('jpg', 'txt'), 'max_count': 3, 'one_max_size': '3Mb', 'wrong_extensions': ('rar', 'zip'), 'min_width': 200, 'min_height': 100, 'max_width': 300, 'max_height': 200}}``\n - \n * - file_fields_params_add\n - file_fields_params\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - \n -\n * - file_fields_params_edit\n - file_fields_params\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n -\n - \n * - filter_params\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n - filter_params = ('filter_name1', ('filter_name2', 'any_valid_value'), )\n - \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u0434\u0430\u043d \u0442\u0430\u043a\u0436\u0435 url_list. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441 \u043f\u0443\u0441\u0442\u044b\u043c, \u043b\u0438\u0431\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0432\u0435\u0442 200\n * - hidden_fields\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435\n - hidden_fields = ('field1', 'field2')\n - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435\n * - hidden_fields_add\n - hidden_fields\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435\n - hidden_fields_add = ('field1', 'field2')\n - \n * - hidden_fields_edit\n - hidden_fields\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435\n - hidden_fields_edit = ('field1', 'field2')\n - \n * - int_fields\n - None\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430\n - int_fields = ('field1', 'field2')\n - \u0441\u043c. digital_fields\n * - int_fields_add\n - int_fields \u0438\u043b\u0438 \u043f\u043e\u043b\u044f \u0438\u0437 digital_fields_add, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0432 default_params_add \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430\n - int_fields_add = ('field1', 'field2')\n - \n * - int_fields_edit\n - int_fields \u0438\u043b\u0438 \u043f\u043e\u043b\u044f \u0438\u0437 digital_fields_edit, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0432 default_params_edit \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435\n - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430\n - int_fields_edit = ('field1', 'field2')\n - \n * - intervals\n - None\n - \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b\n - ``intervals = (('field1', field2'), ('field3, 'field4', '>='))``\n - \u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u043c\u0435\u043d\u044c\u0448\u0435, \u0440\u0430\u0432\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\n * - max_blocks\n - None\n - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0438\u043d\u043b\u0430\u0439\u043d \u0431\u043b\u043e\u043a\u0430\u0445\n - max_blocks = {'inline_block_1': 10}\n - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a, \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\n * - max_fields_length\n - {}\n - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445) \u0438\u043b\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445) \u0432 \u043f\u043e\u043b\u044f\u0445\n - max_fields_length = {'string_field_name': 100, 'digital_field_name': 99999}\n - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445.\n * - min_fields_length\n - {}\n - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445) \u0438\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445) \u0432 \u043f\u043e\u043b\u044f\u0445\n - min_fields_length = {'string_field_name': 5, 'digital_field_name': -1}\n - \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445\n * - multiselect_fields\n - None\n - \u0421\u043f\u0438\u0441\u043e\u043a multiselect \u043f\u043e\u043b\u0435\u0439\n - multiselect_fields = ('field1', 'field2')\n - \u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0447\u0438\u0441\u043b\u043e)\n * - multiselect_fields_add\n - multiselect_fields \u0438\u043b\u0438 default_params_add.keys() \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0438\u0445 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438\n - \u0421\u043f\u0438\u0441\u043e\u043a multiselect \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - multiselect_fields_add = ('field1', 'field2')\n - \n * - multiselect_fields_edit\n - multiselect_fields \u0438\u043b\u0438 default_params_edit.keys() \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0438\u0445 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438\n - \u0421\u043f\u0438\u0441\u043e\u043a multiselect \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - multiselect_fields_edit = ('field1', 'field2')\n - \n * - not_empty_fields\n - None\n - \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f\n - not_empty_fields = ('field1', ('field2', 'field3'))\n - \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f. \u041e\u0434\u043d\u043e \u0438\u0437 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 (\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445) \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e.\n * - not_empty_fields_add\n - not_empty_fields \u0438\u043b\u0438 required_fields_add \u0438\u043b\u0438 default_params_add.keys()\n - \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - not_empty_fields_add = ('field1', ('field2', 'field3'))\n - \n * - not_empty_fields_edit\n - not_empty_fields \u0438\u043b\u0438 required_fields_edit \u0438\u043b\u0438 default_params_edit.keys()\n - \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - not_empty_fields_edit = ('field1', ('field2', 'field3'))\n - \n * - only_if_value\n - None\n - \u041f\u043e\u043b\u044f, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u043b\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u043b\u0435\n - only_if_value = {'field1': {'field2': 'value1'}}\n - \u0423\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0435. \u0423\u043a\u0430\u0437\u0430\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e.\n * - one_of_fields\n - None\n - \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430\n - one_of_fields = (('field1', 'field2'), ('field1', 'field3', 'field4'))\n - \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b. \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f (\u0435\u0441\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0445, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043f\u0430\u0440\u043d\u043e)\n * - one_of_fields_add\n - one_of_fields\n - \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - one_of_fields_add = (('field1', 'field2'), ('field1', 'field3', 'field4'))\n - \n * - one_of_fields_edit\n - one_of_fields\n - \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - one_of_fields_edit = (('field1', 'field2'), ('field1', 'field3', 'field4'))\n - \n * - required_fields\n - None\n - \u041f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435.\n - required_fields = ('field1', ('field2', 'field3'))\n - \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f. \u041e\u0434\u043d\u043e \u0438\u0437 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 (\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445) \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442\n * - required_fields_add\n - required_fields \u0438\u043b\u0438 default_params_add.keys()\n - \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - required_fields_add = ('field1', ('field2', 'field3'))\n - \n * - required_fields_edit\n - required_fields \u0438\u043b\u0438 default_params_edit.keys()\n - \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - required_fields_edit = ('field1', ('field2', 'field3'))\n - \n * - required_if\n - None\n - \u041f\u043e\u043b\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u043e\u043b\u0435\n - ``required_if = {'field1': 'field2', 'field2': ('field1', 'field3')}``\n - \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435, \u043d\u043e \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0435. \u041d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0435. \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435, \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0435.\n * - required_if_value\n - None\n - \u041f\u043e\u043b\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u043b\u0435\n - required_if_value = {'field1': {'field2': 'value1'}}\n - \u0423\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c: \u043f\u043e\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e, \u043f\u043e\u043b\u0435 \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e. \u0423\u043a\u0430\u0437\u0430\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: \u043f\u043e\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e, \u043f\u043e\u043b\u0435 \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e. \n * - required_if_add\n - required_if \u0438\u043b\u0438 {}\n - \u041f\u043e\u043b\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u043e\u043b\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - ``required_if_add = {'field1': 'field2', 'field2': ('field1', 'field3')}``\n - \n * - required_if_edit\n - required_if \u0438\u043b\u0438 {}\n - \u041f\u043e\u043b\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u043e\u043b\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - ``required_if_edit = {'field1': 'field2', 'field2': ('field1', 'field3')}``\n - \n * - status_code_error\n - 200\n - \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a\n -\n -\n * - status_code_not_exist\n - 404\n - \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0440\u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u044f\u0445 \u0441 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c\n -\n -\n * - status_code_success_add\n - 200\n - \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n -\n -\n * - status_code_success_edit\n - 200\n - \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n -\n -\n * - unique_fields\n - None\n - \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439\n - unique_fields = ('field1', ('field2', 'field3'), 'field4')\n - \u041e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0414\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0432 uppercase\n * - unique_fields_add\n - unique_fields (\u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 all_fields_add)\n - C\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\n - unique_fields_add = ('field1', ('field2', 'field3'), 'field4')\n - \n * - unique_fields_edit\n - unique_fields (\u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 all_fields_edit)\n - C\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n - unique_fields_edit = ('field1', ('field2', 'field3'), 'field4')\n - \n * - url_list\n - \n - URL, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c\n - url_list = 'modelname:url_name' \u0438\u043b\u0438 url_list = '/path/to/list/'\n - \n * - with_captcha\n - \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u043b\u044f 'captcha' \u0432 all_fields \u0438\u043b\u0438 \u0432 all_fields_add \u0438\u043b\u0438 \u0432 all_fields_edit\n - \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u043a\u0430\u043f\u0447\u0430 \u043d\u0430 \u0444\u043e\u0440\u043c\u0435. \u0415\u0441\u043b\u0438 True, \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044f\u043c\u0438 \u043a\u0430\u043f\u0447\u0438\n - \n -\n\n\n*file_fields_params*\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\n * - extensions\n - \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\n - \u0412\u0441\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.\n * - wrong_extensions\n - \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\n - \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432 \u0442\u0435\u0441\u0442\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\n * - max_count\n - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432 (\u0434\u043b\u044f \u043f\u043e\u043b\u0435\u0439 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0444\u0430\u0439\u043b\u043e\u0432)\n - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0430\u0439\u043b\u043e\u0432. \u0427\u0438\u0441\u043b\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\n * - one_max_size\n - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 (\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0435\u0439 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0444\u0430\u0439\u043b\u043e\u0432)\n - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430. \u0420\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\n * - min_width\n - \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n - \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u043e\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\n * - min_height\n - \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n - \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u043e\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0432\u044b\u0441\u043e\u0442\u043e\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\n * - max_width\n - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n - \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u043e\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\n * - max_height\n - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n - \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u043e\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0432\u044b\u0441\u043e\u0442\u043e\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\n\n\n*custom_error_messages*\n(\u0422\u043e \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 settings.ERROR_MESSAGES)\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n * - required\n - * \u041d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \n * \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435\n * - without_required\n - \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435\n * - empty_required\n - \u041d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435\n * - max_length\n - * \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u043e\u043b\u0435 \n * \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 \n * \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430\n * - max_length_digital\n - \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435\n * - max_length_file\n - \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430\n * - min_length\n - * \u0414\u043b\u0438\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u043e\u043b\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\n * \u0427\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\n * - min_length_digital\n - \u0427\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\n * - wrong_value\n - \u0412 \u0441\u0435\u043b\u0435\u043a\u0442/\u043c\u0443\u043b\u044c\u0442\u0438\u0441\u0435\u043b\u0435\u043a\u0442 \u043f\u043e\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n * - wrong_value_int\n - \u0412 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\n * - wrong_value_digital\n - \u0412 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435 \u0447\u0438\u0441\u043b\u043e\n * - wrong_value_email\n - \u0412 \u043f\u043e\u043b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n * - unique\n - \u041e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442\n * - delete_not_exists\n - \u0423\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442\n * - recovery_not_exists\n - \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0438\u0437 \u043a\u043e\u0440\u0437\u0438\u043d\u044b \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442\n * - empty_file\n - \u041f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b\n * - max_count_file\n - \u0412 \u043f\u043e\u043b\u0435 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\n * - max_size_file\n - \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430\n * - max_sum_size_file\n - \u0412 \u043f\u043e\u043b\u0435 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432\n * - wrong_extension\n - \u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0444\u0430\u0439\u043b \u0441 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c\n * - min_dimensions\n - \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\n * - one_of\n - \u041f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u0435\n * - max_block_count\n - \u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u043d\u043b\u0430\u0439\u043d-\u043f\u043e\u043b\u0435\u0439 \u0432 \u0431\u043b\u043e\u043a\u0435\n * - not_exist\n - \u041e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 message \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f)\n\n\n**FormAddTestMixIn(FormTestMixIn)**\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - url_add\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\n - url_add = 'modelname:url_name_add' \u0438\u043b\u0438 url_add = '/path/to/add/'\n\n\n**FormEditTestMixIn(FormTestMixIn)**\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - second_save_available\n - True\n - \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0438\u043b\u0438 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c\n - second_save_available = False\n * - url_edit\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n - url_edit = 'modelname:url_name_change' \u0438\u043b\u0438 url_edit = '/path/to/edit/1/' (\u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 pk=1)\n\n\n**FormDeleteTestMixIn(FormTestMixIn)**\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - url_delete\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b\n - url_delete = 'modelname:url_name_delete' \u0438\u043b\u0438 url_delete = '/path/to/delete/1/'\n\n\n**FormRemoveTestMixIn(FormTestMixIn)**\n\n\u0422\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u0440\u0437\u0438\u043d\u0443\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - url_delete\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b\n - url_delete = 'modelname:url_name_remove' \u0438\u043b\u0438 url_delete = '/path/to/remove/1/'\n * - url_recovery\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n - url_recovery = 'modelname:url_name_recovery' \u0438\u043b\u0438 url_recovery = '/path/to/recovery/1/'\n * - url_edit_in_trash\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043a\u043e\u0440\u0437\u0438\u043d\u0435\n - url_edit_in_trash = 'modelname:url_name_trash_edit' \u0438\u043b\u0438 url_edit_in_trash = '/path/to/trash/edit/1/'\n\n\n**ChangePasswordMixIn(GlobalTestMixIn, LoginMixIn)**\n\n\u0422\u0435\u0441\u0442\u044b \u0441\u043c\u0435\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - current_password\n - 'qwerty'\n - \u041f\u0430\u0440\u043e\u043b\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - current_password = 'qwerty'\n * - field_old_password\n - None\n - \u041f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f\n - field_old_password = 'old_password'\n * - field_password\n - None\n - \u041f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f\n - field_password = 'password1'\n * - field_password_repeat\n - None\n - \u041f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f\n - field_password_repeat = 'password2'\n * - password_max_length\n - 128\n - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n - password_max_length = 128\n * - password_min_length\n - 6\n - \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n - password_min_length = 6\n * - password_params\n - default_params \u0438\u043b\u0438 {field_old_password: current_password, field_password: some_new_value, field_password_repeat: some_new_value}\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043c\u0435\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044f\n - password_params = {'password1': 'qwe123', 'password2': 'qwe123'}\n * - obj\n - None\n - \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - obj = User\n * - password_positive_values\n - [get_randname(10, 'w') + str(randint(0, 9)), str(randint(0, 9)) + get_randname(10, 'w'), get_randname(10, 'w').upper() + str(randint(0, 9)), ]\n - \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n - password_positive_values = ['qwe+', 'qwe*', 'QwE1']\n * - password_similar_fields\n - None\n - \u041f\u043e\u043b\u044f \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\n - password_similar_fields = ('email', 'first_name')\n * - password_wrong_values\n - ['\u0439\u0446\u0443\u043a\u0435\u043d\u0433', ]\n - \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u043b\u044f (\u0441 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0439 \u0434\u043b\u0438\u043d\u043e\u0439)\n - password_wrong_values = ['qwerty', '\u0439\u0446\u0443\u043a\u0435\u043d', '123456']\n * - url_change_password\n - ''\n - URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 pk \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043a /url/, \u0438\u043d\u0430\u0447\u0435 - \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 urlname\n - url_change_password = 'admin:auth_user_password_change'\n\n\n**LoginTestMixIn**\n\n\u0422\u0435\u0441\u0442\u044b \u043b\u043e\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n\n.. list-table::\n :header-rows: 1\n\n * - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f\n - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n * - blacklist_model\n - None\n - \u041c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u043b\u043e\u0433\u0438\u043d\u0430\u0445 \u0441 ip\n - blacklist_model = BlackList\n * - default_params\n - {self.field_username: self.username, self.field_password: self.password}\n - \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - default_params = {'username': 'test@test.test', 'password': 'qwerty'}\n * - field_password\n - 'password'\n - \u041f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n - field_password = 'password'\n * - field_username\n - 'username'\n - \u041f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u044e\u0437\u0435\u0440\u043d\u0435\u0439\u043c\u0430\n - field_username = 'username'\n * - password\n - 'qwerty'\n - \u041f\u0430\u0440\u043e\u043b\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - password = 'qwerty'\n * - passwords_for_check\n - []\n - \u041f\u0430\u0440\u043e\u043b\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (\u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0432\u0441\u0435)\n - passwords_for_check = ['qwerty', '\u0439\u0446\u0443\u043a\u0435\u043d', '123456']\n * - obj\n - None\n - \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - obj = User\n * - username\n - None\n - \u042e\u0437\u0435\u0440\u043d\u0435\u0439\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n - username = 'test@test.test'\n * - url_login\n - ''\n - URL \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430\n - url_login = 'admin:login'\n * - url_redirect_to\n - ''\n - URL \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435 \u043b\u043e\u0433\u0438\u043d\u0430\n - url_redirect_to = 'accounts:cabinet'\n * - urls_for_redirect\n - ['/', ]\n - \u0423\u0440\u043b\u044b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e (\u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430)\n - urls_for_redirect = ['accounts:profile',]\n\n\n**\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438**\n\n\u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 django settings\n\n.. list-table::\n :header-rows: 1\n\n * - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\n - \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n - \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n * - CAPTCHA_TYPE\n - 'simplecaptcha'\n - \u0442\u0438\u043f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043a\u0430\u043f\u0447\u0438. 'supercaptcha' \u0438\u043b\u0438 'simplecaptcha'\n * - COLORIZE_TESTS\n - False\n - \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0442\u0435\u0441\u0442\u043e\u0432\n * - LOGIN_URL_NAME\n - 'login'\n - url, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043d\n * - LOGOUT_URL_NAME\n - 'auth_logout'\n - url, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0430\u0443\u0442\n * - ERROR_MESSAGES\n - {}\n - \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n * - SIMPLE_TEST_EMAIL\n - False\n - \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b\n * - TEST_DATE_INPUT_FORMAT\n - settings.DATE_INPUT_FORMATS[0]\n - \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0430\u0442\n * - TEST_DATETIME_INPUT_FORMAT\n - settings.DATETIME_INPUT_FORMATS[0]\n - \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 datetime-\u043f\u043e\u043b\u044f\u0445\n * - TEST_TIME_INPUT_FORMAT\n - settings.TIME_INPUT_FORMATS[0]\n - \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438\n * - TEST_GENERATE_REAL_SIZE_FILE\n - True\n - \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c. \u041f\u0440\u0438 False \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f FakeSizeMemoryFileUploadHandler\n * - TEST_REAL_FORM_FIELDS\n - False\n - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u0437 content, \u0430 \u043d\u0435 context\n * - TEST_SPEEDUP_EXPERIMENTAL\n - False\n - \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u0443\u0442\u0435\u043c \u0440\u0430\u043d\u043d\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432\n * - TEST_TRACEBACK_LIMIT\n - None\n - \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0442\u0440\u0435\u0439\u0441\u0431\u0435\u043a\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\n * - TEST_USE_REAL_SETTINGS\n - False\n - \u0435\u0441\u043b\u0438 True, \u043d\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0431\u0430\u0437 \u0440\u0435\u0434\u0438\u0441\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n",
"bugtrack_url": null,
"license": "",
"summary": "Django test tools",
"version": "0.37.18",
"split_keywords": [
"django",
"testing",
"test tool"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a10c783835bedc05d7faa1b2e99cdae60c2e2ee24956dcc5e32f2d603d7e981d",
"md5": "11f50f3e702236658c9df2ebdaaad8e5",
"sha256": "af4e78a54308e82dfbf4fa33e631186e64ab265a5b2aed20b577caa76091d163"
},
"downloads": -1,
"filename": "ttoolly-0.37.18-py3-none-any.whl",
"has_sig": false,
"md5_digest": "11f50f3e702236658c9df2ebdaaad8e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 95370,
"upload_time": "2023-03-24T07:09:17",
"upload_time_iso_8601": "2023-03-24T07:09:17.134992Z",
"url": "https://files.pythonhosted.org/packages/a1/0c/783835bedc05d7faa1b2e99cdae60c2e2ee24956dcc5e32f2d603d7e981d/ttoolly-0.37.18-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "38e0e968e3a028532b0a24f7cebf3a8f8de1abaedf79a654e471cc5ddc126cd3",
"md5": "06411572cd9064f448d074493c19f2f6",
"sha256": "c8b6d1cbd1af3b0b67e386b1a93a6bbc991809fbeff5d1af8e477385232f8816"
},
"downloads": -1,
"filename": "ttoolly-0.37.18.tar.gz",
"has_sig": false,
"md5_digest": "06411572cd9064f448d074493c19f2f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 119035,
"upload_time": "2023-03-24T07:09:20",
"upload_time_iso_8601": "2023-03-24T07:09:20.975460Z",
"url": "https://files.pythonhosted.org/packages/38/e0/e968e3a028532b0a24f7cebf3a8f8de1abaedf79a654e471cc5ddc126cd3/ttoolly-0.37.18.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-24 07:09:20",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "ttoolly"
}