Как динамически создавать новые классы python с разными именами в цикле? [дубликат]

Я создаю некий интернет-магазин. У меня есть базовый абстрактный класс и дочерние классы для всех товаров.

***models.py***

class Item(models.Model):

    class Meta:
        abstract = True

class FirstItem(Item):
    pass

class SecondItem(Item):
    pass

Я регистрирую все классы в admin.py

***admin.py***

class FirstItemAdmin(admin.ModelAdmin):
    inlines = []
    def foo():
      pass

class SecondItemAdmin(admin.ModelAdmin):
    inlines = []
    def foo():
      pass

admin.site.register(FirstItemAdmin)
...

Как я могу динамически создавать новые классы с разными именами типа class ThirdItemAdmin(), class FourthItemAdmin(), class FifthItemAdmin()... в цикле, чтобы эти классы могли быть зарегистрированы в дальнейшем коде?

admin.site.register(ThirdItemAdmin)
admin.site.register(FourthItemAdmin)
...

Я пробовал так

def classMaker(*args, **kwargs):
    for class in args:
        new_class_name = cls.__name__ + 'Admin'
        type(new_class_name, (admin.ModelAdmin,), {})

classMaker(FirstItem, SecondItem, ThirdItem, FourthItem, FifthItem)

и все классы созданы, но они невидимы в дальнейшем коде. Есть ли способ сделать это динамично или мне придется создавать классы для всех элементов вручную?

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