думал что можно как то через метакласс?
метаклассы это магия которая в 99% случаев не нужна
Можно что-то вроде isinstance(self, A)
окей, как мне в миксине получить имя класса длякоторого буду вливать файл?
Отвратительно
32я строка keys() лишний
Ща распишу как правильно делать
почему класс родитель должен знать о своих потомках? Оо
В общем, нужно логику выгрузки, то есть то что после request.METHOD == "POST" вынести в отдельный класс, у миксина на уровне класса определить поле uploader_class, определяешь для него базовый класс BaseUploader с интерфейсом каким-то, дальше в тех классах, где используешь миксин переопределяешь этот uploader_class нужным наследником все изи
сделай фабрику мб
да зачем, чекни вон что я выше писал
Попробую, спасибо
class BaseUploader: def __init__(self, request): self.request = request def upload(self): pass class MyModelUploader(BaseUploader): def upload(self): MyModel.objects.create() class Mixin(admin.ModelAdmin): uploader_class = BaseUploader def custom_action(self, request): uploader = self.uploader_class(request) uploader.upload() class MyModelAdmin(Mixin): uploader_class = MyModelUploader
Обсуждают сегодня