Просмотр исходного кода

Do full_clean correctly and dont do it when its not needed.

Ralfp 12 лет назад
Родитель
Сommit
50ff5e687a
2 измененных файлов с 12 добавлено и 10 удалено
  1. 2 1
      misago/forms/__init__.py
  2. 10 9
      misago/forms/layouts.py

+ 2 - 1
misago/forms/__init__.py

@@ -47,7 +47,8 @@ class Form(forms.Form):
         """
         """
         Trim inputs and strip newlines
         Trim inputs and strip newlines
         """
         """
-        for key, field in self.base_fields.iteritems():
+        self.data = self.data.copy() 
+        for key, field in self.fields.iteritems():
             try:
             try:
                 if field.__class__.__name__ in ['ModelChoiceField', 'TreeForeignKey'] and self.data[key]:
                 if field.__class__.__name__ in ['ModelChoiceField', 'TreeForeignKey'] and self.data[key]:
                     self.data[key] = int(self.data[key])
                     self.data[key] = int(self.data[key])

+ 10 - 9
misago/forms/layouts.py

@@ -61,15 +61,16 @@ class FormFields(object):
             if widget.needs_multipart_form:
             if widget.needs_multipart_form:
                 self.multipart_form = True
                 self.multipart_form = True
             
             
-            # Get errors
-            for error in bound_field._errors():
-                blueprint['errors'].append(error)
-            try:
-                for error in form.errors[field]:
-                    if not error in blueprint['errors']:
-                        blueprint['errors'].append(error)
-            except KeyError:
-                pass
+            # Get errors?
+            if form.is_bound:
+                for error in bound_field._errors():
+                    blueprint['errors'].append(error)
+                try:
+                    for error in form.errors[field]:
+                        if not error in blueprint['errors']:
+                            blueprint['errors'].append(error)
+                except KeyError:
+                    pass
             
             
             # Use clean value instead?
             # Use clean value instead?
             try:
             try: