Я довольно устаю от постраничного перелистывания множества нерелевантных маленьких неудобных свойств при поиске реальной структуры базы данных моих моделей. Было бы плохо использовать универсальные прокси-модели просто для того, чтобы мой код был лучше организован / более читабелен? * 1001 Т.е. *
class Foo_Base( models.Model):
title = models.CharField( ...)
# other DB fields. As little as possible anything else.
class Bar_Base( models.Model):
foo = models.ForeignKey( Foo_Base, ... )
и т.д.. не намного больше строк, чем столбцов в таблицах БД. Затем внизу или в другом месте,
class Foo( Foo_Base):
class Meta:
proxy=True
@property
def some_pseudo_field(self):
# compute something based on the DB fields in Foo_Base
return result
@property
# etc. pages of etc.
Тот факт, что makemigrations
и migrate
отслеживают модели прокси, вызывает у меня некоторую обеспокоенность, хотя, похоже, именно это использование и соответствует документации Django (наложение дополнительных функций на одну и ту же таблицу базы данных).
Или есть другой способ организовать мой код, который выполняет то же самое (сохраняя фундаментальные вещи и небольшие кусочки поддержки друг от друга).
[Изменить] Я предлагаю что-то, что, кажется, работает как самоответ ниже. Я все еще очень хотел бы услышать от любого, кто знает наверняка, что это нормально, учитывая глубокую магию Джанго в декларациях декларативного поля.
(Единственное, что мне не нравится в Python, это то, что он не имеет include
функциональности для чтения кучи кода из другого файла!)