в файле utils.
Да вот беда. Я боюсь импортов, как чумы. Одна возможность кольцевого импорта просто меня может парализовать. Однажды я целый проект выбросил и с нуля переписал. Просто потму что на поздней стадии не смог справиться с кольцевым импортом.
Так вот, почему метод засунут в модель - да потому что модель можно отовсюду достать через get_model. Код стал малость уродским, но я готов это пережить - лишь бы только не импорты.
Скажите, пожалуйста, это полная дрисня или нормальный прием?
так а в чем проблема raster_image_model = apps.get_model(app_label="images", model_name="RasterImage") obj = raster_image_model.objects.get(pk=id)
Проблема в читаемости кода. Код стал малость уродливым. Во-первых, могут засмеять. А во-вторых, нарушена логика. Вообще-то говоря, это, конечно, не про модель. Модель работает с базой данных. Хотя, тут тоже более-менее связано с базой данных. Но вот так делать можно или это полная чушь?
Только я бы сделал classmethod, а не staticmethod
RasterImage = apps.get_model(app_label="images", model_name="RasterImage") obj = RasterImage.objects.get(pk=id)
Пожалуй, пример неудачный. Речь идет об утилитах. сейчас перебью пример.
мне кажется лучше и правильнее разобраться с импортами ну и подружиться с ними
Я уже зубы об него сломал.
В общем, так делать не хочется. Потому что это хардкод. Ну, хорошо - там pk. А если там было бы написано foo? А потом это foo поменяется на trololo. И я в 1000 мест буду перебивать все. В общем, пример я мог бы привести. Но это любая утилита. Вот вообще любая. Просто мне ее не хочется импортировать импортом.
Можно я вам в личку напишу?
Давай
какой то ложный посыл во первых что там захардкожено ? во вторых ну хорошо у тебя в одном месте будет вызов модели в остальных вызов твоей утилиты и ты в утилите(в одном месте) меняешь поле выборки а это значит что во всех остальных местах ты должен поменять данные для выборки
да, возможно, ложный посыл. спасибо за помощь. буду дальше думать.
Обсуждают сегодня