Я пытаюсь реализовать модель, в которой только подмножество полей должно быть представлено в формах на основе внешнего ключа в модели.
Общее количество полей относительно невелико (~ 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 для реализации представлений внешнего интерфейса и администрирования?
Спасибо.