Show some code how you create these forms.
Django creates
QueryDict objects for
request.POST and
request.GET which are
immutable, so mu guess is that some times you are instancing the form with either
request.POST or
request.GET and another time (when you have an
AJAX call) you are instantiating the forms with a simple
dict object (created from
json.loads) which is
mutable.
However, I don't think that it's a good idea to change
form.data, whats the purpose behind it? probably there is a better way.