Разница между import appname.models и from appname.models.ModelName в Djano

Как стиль программирования, я считаю более полезным писать следующее:

import appname.models 
obj = appname.models.ModelName.objects.filter(status=1)

Однако, я нахожу много кода, где только ModelName импортируется:

from appname.models import ModelName
obj = ModelName.objects.filter(status=1)

Однако я часто сталкиваюсь со сценарием, когда изменение в ModelName приводит к поломке приложения и нам приходится вносить изменения повсюду.

Кроме того, с точки зрения читабельности, при втором подходе мне очень трудно понять, где была определена модель (в каком приложении).

Я настаивал на том, чтобы моя команда выбрала первый подход. Хотелось бы услышать ваши мысли о том, какой подход является лучшим с точки зрения следующих аспектов:

  1. Readability
  2. Scalability
  3. Performance

Я очень ценю все ваши мысли здесь.

from appname.models import ModelName

Я предпочитаю этот вариант, потому что этот способ более четко рассказывает нам о модели и о том, из каких приложений она происходит. Когда вы работаете над большим проектом, используя api или Thiry party apps и много импортируемых моделей или других party apps, так что трудно найти модели или некоторые другие вещи. Короче говоря, я предпочитаю этот способ

import appname.models

Этот метод не является предпочтительным. Потому что он ничего не добавляет к кодовой базе. Вам придется использоватьappname.models снова и снова. Качество кода будет ухудшено, а время загрузки увеличится в больших приложениях.

from appname.models import ModelName

Хотя этот подход является более правильным и эффективным. Вы импортируете модель Specified только один раз и будете использовать ее снова и снова. Этот подход экономит память и время загрузки.

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