diff --git a/django/core/formfields.py b/django/core/formfields.py index 0cfe6b2890d..1ae4873fa28 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 76830d0c02b..eb835458978 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)