Модель Джанго с динамическими полями на основе внешнего ключа - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь реализовать модель, в которой только подмножество полей должно быть представлено в формах на основе внешнего ключа в модели. Общее количество полей относительно невелико (~ 20), но может часто меняться при разных значениях внешнего ключа. Я хотел бы использовать что-то вроде наследования одной таблицы, но с одной моделью (без наследования). Я посмотрел на существующие пакеты eav, динамические модели ... но они, похоже, не соответствовали моим потребностям.
Часть требования состоит в том, что я хотел бы запрашивать модели по sql без слишком большого количества соединений.

Вот пример использования, представляющий заявки на гранты на основе запроса заявки (rfa). RFA вводится администратором сотрудниками, а приложения создаются конечными пользователями.

application class
    rfa (request for application): foreign key
    field_1
    ...
    field_20
rfa class:
    app_fields (coma separated list of field names)

В формах только поля в app_fields должны быть видны для определенного rfa.

У меня часть rfa покрыта django-separatedvaluesfield , и мне было интересно, как реализовать страницы приложения, чтобы они работали с общими представлениями во внешнем интерфейсе и администраторе, и были бы СУХИМЫМИ.

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

def get_current_app_fields(self):
    return self.rfp.app_fields

Есть какие-нибудь идеи по поводу лучшей стратегии DRY для реализации представлений внешнего интерфейса и администрирования?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...