Поля без базы данных для модели Django или администратора

У меня есть модель, в которой есть некоторые поля, хранящиеся в БД. Кроме того, мне нужно реализовать поля, отличные от db, которые будут загружаться и сохраняться с помощью пользовательского API. Пользователи должны взаимодействовать с моделью с помощью интерфейса администратора, Grappelli используется для улучшения стандартного администратора Django.

Меня интересует одно из следующего:

  • Виртуальные поля модели или свойства, где я могу переопределить, как читать и сохранять настраиваемые поля. (Простые свойства Python не будут работать с администратором Django)
  • Редактируемые вызовы для администратора (не уверен, что это вообще возможно)
  • Любые другие способы отображения и обработки настраиваемых полей в админке, кроме создания настраиваемых форм и переноса логики в формы.

person Art    schedule 22.10.2015    source источник
comment
Я не могу представить, что такое редактируемый вызываемый объект. Но почему вы не хотите поместить логику в формы?   -  person Daniel Roseman    schedule 22.10.2015
comment
Взгляните на upper_case_name здесь Однако они всегда доступны только для чтения, даже если вы используете @property с @prop_name.setter. Формы, ну они для этого просто не созданы, так что это как бы нарушение понятий.   -  person Art    schedule 22.10.2015
comment
Я думаю, что пользовательские формы будут подходящими .... также с архитектурной точки зрения не имеет смысла иметь поля модели, отличные от django, в классе модели django. На самом деле вам нужна ViewModel, которую может предоставить CustomForm.   -  person Chirdeep Tomar    schedule 22.10.2015
comment
Теперь я в замешательстве. Вы говорите о редактировании вещей на странице списка или странице сведений о редактировании?   -  person Daniel Roseman    schedule 22.10.2015
comment
Даниэль, я хочу отредактировать что-то на странице редактирования. Callables позволяют вам только отображать вещи, но как в виде списка, так и в режиме редактирования. Вы можете использовать их как в list_display, так и в наборах форм.   -  person Art    schedule 22.10.2015


Ответы (1)


Я думаю, вы можете использовать класс без модели, который обертывает класс модели и имеет несколько дополнительных полей, где вы можете установить/получить или сохранить в другом месте.

person hiennt    schedule 22.10.2015