Должен ли я использовать функцию администратора Django? - PullRequest
9 голосов
/ 12 сентября 2011

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

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

Спасибо за любые отзывы!

Ответы [ 3 ]

9 голосов
/ 12 сентября 2011

Может быть. Если функциональность администратора покрывает большую часть того, что вы хотите предложить, нет причины, по которой вам не следует использовать ее в качестве отправной точки.

django.contrib.admin - это приложение, похожее на любое другое, которое предоставляет в основном CRUD-интерфейс для ваших моделей. Доступ можно контролировать с помощью групп / разрешений, так же, как и для приложения, которое вы пишете сами. Вы можете дать полный доступ к модели с одной линией, но, очевидно, придется настроить должным образом при открытии для других.

Смотрите также мой вопрос Django AdminSite / ModelAdmin для конечных пользователей? и подобные вопросы Разоблачение админа django пользователям. Вредно? и Как сделать доступ к админ-сайту Django внештатным пользователем?

Что касается аргументов о «предполагаемом использовании» администратора, обратите внимание на обновление безопасности Django в конце прошлого года: http://www.djangoproject.com/weblog/2010/dec/22/security/ относительно параметров строки запроса в списках объектов. Такое обновление (цитата: «злоумышленник с доступом к администратору [...]») является четким свидетельством того, что реализация системы разрешений администратором постоянно изучается.

3 голосов
/ 12 сентября 2011

Нет.Администратор django не предназначен для конечных пользователей.

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

Для вашегоцели, элементы обзора и рабочий процесс при создании элементов являются важной частью вашего набора функций приложения.Администратор даст вам идеи, но было бы ошибкой пытаться построить на нем ваше приложение.

3 голосов
/ 12 сентября 2011

Я бы не стал предоставлять интерфейс администратора обычным пользователям. Вы можете использовать сторону аутентификации и управления пользователями (для своих целей), но обычно рекомендуется предоставлять пользователям отдельный способ управления их объектами. Вы также не рискуете предоставить неправильные привилегии пользователям (или разрешить им предоставлять свои права).

Прочтите документы (https://docs.djangoproject.com/en/dev/ref/contrib/admin/), если хотите получить более подробный обзор того, что он может сделать.

...