заменить значения в form.data, если форма не проходит проверку - PullRequest
0 голосов
/ 12 марта 2010

У меня есть поле формы, для которого требуется объект json в качестве значения при его визуализации. Когда форма отправляется, она возвращает разделенную запятыми строку идентификаторов в качестве значения (не строку json). однако, если форма не проверяется, я хочу превратить эту строку идентификаторов обратно в строку json, чтобы она правильно отображалась (использует jquery для правильной визуализации объекта json).

как бы мне это сделать?

Я думал о перезаписи метода form.clean, но когда я попытался изменить self.data ['fieldname'], я получил ошибку 'Этот экземпляр QueryDict неизменен'

и когда я попытался изменить self.cleaned_data ['fieldname'], это не имело значения для значения поля.

Спасибо

1 Ответ

0 голосов
/ 12 марта 2010

Я закончил делать

if request.method == 'POST': 
    new_data = request.POST.copy() 
    form = MyForm(data=new_data) 
    if form.is_valid():  
        form.save()  
    else:  
        new_data['myField'] = '[{'id':1,'value':some json object}]' 

Я сделал это в виде, а не в классе формы. Я не знаю, является ли это лучшим способом сделать это, но это сработало для меня. Выполнение request.POST.copy () позволило мне изменить переменные записи, что является одной из ошибок, которые я получил в первую очередь.

Надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...