В GeoDjango используйте GeoModelAdmin как StackedInline в Django Admin

Я пытаюсь использовать GeoModelAdmin в качестве StackedInline в панели администратора Django.

Я видел эти два похожих вопроса:

Ответ, рекомендующий наследовать от и GeoModelAdmin и StackedInline почти работает. Следующий код:

models.py:

class SomeGeometry(gis_models.Model):
  geometry = gis_models.GeometryField(blank=False, null=False)
  some_model = models.ForeignKey("somemodel", blank=False, null=False, on_delete=models.CASCADE, related_name="geometries")

class SomeModel(models.Model):
  name = models.CharField(max_length=255)

admin.py:


class SomeGeometryAdminInline(gis_admin.GeoModelAdmin, admin.StackedInline):
    model = SomeGeometry
    extra = 0
    fields = (
        "geometry",
    )


    def __init__(self, parent_model, admin_site):

        # InlineModelAdmin.__init__
        self.admin_site = admin_site
        self.parent_model = parent_model
        self.opts = self.model._meta
        self.has_registered_model = admin_site.is_registered(self.model)


        # BaseModelAdmin.__init__
        overrides = copy.deepcopy(FORMFIELD_FOR_DBFIELD_DEFAULTS)
        for k, v in self.formfield_overrides.items():
            overrides.setdefault(k, {}).update(v)
        self.formfield_overrides = overrides


@admin.register(SomeModel)
class SomeModelAdmin(admin.ModelAdmin):
    fields = ("name",)
    inlines = (SomeGeometryAdminInline, )

Правильно показывает редактируемый виджет геометрии. Но нет ссылки "добавить другую модель" внизу инлайн-форсета.

Есть подсказки, как вернуть ссылку?


Если я явно устанавливаю

formfield_overrides = {
  gis_fields.GeometryField: {
    "widget": gis_widgets.OpenLayersWidget
  }
}

Тогда виджет выглядит следующим образом:

enter image description here

Но я хочу, чтобы это выглядело так:

enter image description here

(обратите внимание на элементы управления в правом верхнем углу, позволяющие изменять геометрию)

Вернуться на верх