Я использую делегатов для передачи с потоками.
, Например, у меня могло бы быть приложение форм победы, которое загружает файл. Приложение запускает рабочий поток, чтобы сделать загрузку (который препятствует тому, чтобы GUI заперся). Рабочий поток использует делегатов для отправки сообщений о состоянии (например, прогресс загрузки) назад к основной программе, так, чтобы GUI мог обновить строку состояния.
Каждый набор форм Django поставляется с формой управления, которую необходимо включить в сообщение. Официальные документы объясняют это довольно хорошо. Чтобы использовать его в своем модульном тесте, вам нужно либо написать его самостоятельно. (В предоставленной мной ссылке показан пример) или вызовите formset.management_form
, который выводит данные.
Похоже, это вообще не набор форм. В наборах форм всегда будет какой-то префикс для каждого значения POSTed, а также для ManagementForm, о котором упоминает Bartek. Это могло бы помочь, если бы вы разместили код представления, которое пытаетесь протестировать, и форму / набор форм, которые оно использует.
In particular, I've found that the ManagmentForm validator is looking for the following items to be POSTed:
form_data = {
'form-TOTAL_FORMS': 1,
'form-INITIAL_FORMS': 0
}
Мой случай может быть выбросом, но в некоторых случаях фактически отсутствовало поле, установленное в стандартной форме / шаблоне администратора "contrib", что приводило к ошибке
"Данные ManagementForm отсутствуют или имеют был изменен с "
при сохранении.
Проблема заключалась в методе unicode (SomeModel: [Bad Unicode data]), который я обнаружил при исследовании отсутствующих строк.
Полагаю, урок состоит в том, что нельзя использовать карту символов MS. Моя проблема была с вульгарными дробями (¼, ½, ¾), но я предполагаю, что это могло произойти по-разному. Для специальных символов это исправлено копированием / вставкой со страницы w3 utf-8.