Как динамически создавать новые классы 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)
и все классы созданы, но они невидимы в дальнейшем коде. Есть ли способ сделать это динамично или мне придется создавать классы для всех элементов вручную?