Правильный способ выбора правильного соответствующего класса в Python - PullRequest
0 голосов
/ 14 декабря 2018

Я использую Django и у меня есть несколько моделей.Они соотносятся друг с другом без каких-либо внешних ключей, но я хочу иметь возможность выбирать их централизованно, вот модели (без наследования и полей, поэтому тесты просты):

class ItemTypeOne:
    pass

class ItemOneExtra:
    pass

# -----------------------------
class ItemTypeTwo:
    pass

class ItemTwoExtra:
    pass

# ... and so on

ЧтоДо сих пор я думал об использовании их для их отображения, вот так:

correlated_extra_model = {ItemTypeOne: ItemOneExtra, ItemTypeTwo: ItemTwoExtra}[ItemTypeOne]

Это работает, но я не уверен, приемлемо ли это

1 Ответ

0 голосов
/ 15 декабря 2018

Во-первых, в реляционной настройке ваши таблицы связаны только в том случае, если у вас есть своего рода внешний ключ или поле «один к одному», указывающее на другую таблицу.Без этого он не имеет никакого отношения на уровне БД.Возможно, вы применяете это поведение с помощью своей логики.

Во-вторых, если вам нужно создать вспомогательные модели для каждой вашей базовой модели, я думаю, что это показатель того, что текущий дизайн имеет недостатки, и вам необходимо переосмыслитьмоделей.Конечно, это основано на моих предположениях, и они могут быть не очень применимы к вашему варианту использования.Итак, если вы можете, пожалуйста, поделитесь более подробной информацией о постановке задачи.

...