Джанго:Лучшая практика для реализации CRUD вне contrib.admin
-
22-07-2019 - |
Вопрос
В настоящее время я разрабатываю проект блога, используя модель Post, которая будет использоваться несколькими авторами.
Я хочу создать интерфейс администратора / панели управления, где каждый автор сообщения может просматривать список сообщений, созданный автором (чтобы он не видел сообщения, созданные другими авторами), редактировать и многократно удалять их.
Допустимый вариант использования для django admin? сказал , что:
администратор Django не подходит для отдельных профилей пользователей, каждый пользователь сможет видеть и редактировать все другие профили пользователей.Это больше подходит администратору, который должен управлять всеми пользователями одновременно.
Это означает, что должна быть создана новая CRUD-система - вне интерфейса contrib.admin.Итак, вопрос в том, существует ли какая-либо существующая техника / способ реализации CRUD вне системы contrib.admin?или, что мне нужно изучить / использовать?как я могу это красиво реализовать (с минимальными усилиями)?
Заранее спасибо :)
Решение
Это довольно легко сделать, настроив Django admin.Если это единственная причина для отказа от contrib.admin, то, возможно, вам захочется поискать в Google несколько недавних статей о настройке администратора, прежде чем вы начнете выплескивать ребенка вместе с водой из ванны.
Я нашел несколько вероятных кандидатов:
- http://patrickbeeson.com/blog/2008/aug/11/how-create-user-specific-admin-Django/
- http://www.djangosnippets.org/snippets/1054/
и вообще: http://www.ibm.com/developerworks/opensource/library/os-django-admin/index.html
(обратите внимание, что существовала старая техника, которая использовала локальный взлом потоков.В этом больше нет необходимости, поскольку есть более эффективные способы сделать это.Упоминание об этом - верный признак того, что статья устарела.)
Другие советы
Вы можете посмотреть на Общие формы создания / обновления Django . Это не администратор, но его довольно легко реализовать.
Проверьте это приложение: https://github.com/05bit/django-smarter . р>
Это еще не очень хорошо задокументировано, но я уже использовал его в нескольких проектах.
В Django 1.3 «общие представления» (CRUD формы) изменились на классовые. См. здесь .