summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/formfields.py4
-rw-r--r--django/core/meta/__init__.py6
2 files changed, 7 insertions, 3 deletions
diff --git a/django/core/formfields.py b/django/core/formfields.py
index 0cfe6b2890..1ae4873fa2 100644
--- a/django/core/formfields.py
+++ b/django/core/formfields.py
@@ -887,8 +887,8 @@ class CommaSeparatedIntegerField(TextField):
class RawIdAdminField(CommaSeparatedIntegerField):
def html2python(data):
- return data.split(',');
- html2python = classmethod(html2python)
+ return data.split(',')
+ html2python = staticmethod(html2python)
class XMLLargeTextField(LargeTextField):
"""
diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py
index 76830d0c02..eb83545897 100644
--- a/django/core/meta/__init__.py
+++ b/django/core/meta/__init__.py
@@ -1702,7 +1702,11 @@ def manipulator_save(opts, klass, add, change, self, new_data):
for f in opts.many_to_many:
if self.follow.get(f.name, None):
if not f.rel.edit_inline:
- was_changed = getattr(new_object, 'set_%s' % f.name)(new_data.getlist(f.name))
+ if f.rel.raw_id_admin:
+ new_vals = new_data.get(f.name, ())
+ else:
+ new_vals = new_data.getlist(f.name)
+ was_changed = getattr(new_object, 'set_%s' % f.name)(new_vals)
if change and was_changed:
self.fields_changed.append(f.verbose_name)