Commit 38c43b2a authored by Collin Anderson's avatar Collin Anderson Committed by Tim Graham
Browse files

Refs #24227 -- Partially reverted replacement of M2M isinstance checks by field.many_to_many.

This fixes django-taggit and reflects some places where duck-typing may not
be appropriate.
parent 67d98441
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -136,8 +136,8 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)):
        if db_field.choices:
            return self.formfield_for_choice_field(db_field, request, **kwargs)

        # Foreign key or many-to-many fields
        if db_field.many_to_many or isinstance(db_field, models.ForeignKey):
        # ForeignKey or ManyToManyFields
        if isinstance(db_field, models.ManyToManyField) or isinstance(db_field, models.ForeignKey):
            # Combine the field kwargs with any options for formfield_overrides.
            # Make sure the passed in **kwargs override anything in
            # formfield_overrides because **kwargs is more specific, and should
@@ -148,7 +148,7 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)):
            # Get the correct formfield.
            if isinstance(db_field, models.ForeignKey):
                formfield = self.formfield_for_foreignkey(db_field, request, **kwargs)
            elif db_field.many_to_many:
            elif isinstance(db_field, models.ManyToManyField):
                formfield = self.formfield_for_manytomany(db_field, request, **kwargs)

            # For non-raw_id fields, wrap the widget with a wrapper that adds
@@ -1400,7 +1400,7 @@ class ModelAdmin(BaseModelAdmin):
            except FieldDoesNotExist:
                continue
            # We have to special-case M2Ms as a list of comma-separated PKs.
            if f.many_to_many:
            if isinstance(f, models.ManyToManyField):
                initial[k] = initial[k].split(",")
        return initial