По существу я хочу санировать некоторые данные, которые пользователь отправляет в форме, когда я вновь отображаю их, если существует ошибка. Это легко сделать, если я извлекаю данные из объекта формы. Я могу переопределить чистое () метод и управлять данными. Я могу также установить .initial значение впервые, оно отображено. Однако я не могу найти способ управлять данными формы, которые идут во вновь отображенный на ошибке. Например, скажите, что пользователь отправляет номер телефона "123 456 тестовых тестов 7890”, я хочу смочь разделить неалфавитно-цифровые символы (который легок), и покажите им просто числа “1234567890” в поле формы.
Если данные поступают из запроса (в том случае, если вы используете представление), словарь form.data
будет QueryDict
, который должен быть неизменяемым. К счастью, вы можете изменить его, скопировав его первым:
self.data = self.data.copy()
self.data['phone_number'] = 1234567890
Если вы изменяете непосредственно экземпляр формы, который не из запроса представления, вы можете изменить словарь form.data
(таким образом это простой объект словаря) прямо так:
# Don't need to copy `data` first
self.data['phone_numer'] = 123456789