Стоит ли использовать встроенный администратор Django для приличного размера проекта? - PullRequest
5 голосов
/ 15 июля 2009

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

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

Кто-нибудь использовал администратора Django для некоторых довольно настраиваемых интерфейсов, которые используют непрограммисты? Стоило ли? Вы бы предпочли создать домашний интерфейс администратора специально для сайта?

Просто чтобы уточнить, пользователи будут совершенно нетехническими.

Ответы [ 4 ]

4 голосов
/ 16 июля 2009

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

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

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

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

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

3 голосов
/ 15 июля 2009

Моя компания создала CMS поверх Django, которая обрабатывает многочисленные задачи (плоские страницы, блоги, разделы только для членов, импорт и анализ данных с внешних сайтов, таких как youtube и flickr, списки рассылки, альбомы песен и тексты песен для художников, и т.д.) и до сих пор мы все еще используем встроенный админ. У нас есть несколько очень нетехнических клиентов, которые регулярно его используют.

Вы можете пойти довольно далеко, настроив его с помощью файлов admin.py, когда вы действительно в него войдете. Единственное, что мы добавили, это tinyMCE и Filebrowser, чтобы упростить эти аспекты для конечных пользователей.

Я скажу, что мы работаем над модулем галереи, для которого понадобится пользовательский администратор. В остальном я был очень счастлив и впечатлен тем, насколько гибким и мощным может быть админ Django. И это так же удобно для пользователя, как вы думаете.

2 голосов
/ 16 июля 2009

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

Так что для меня дискриминация в том, использовать это или нет, заключается в «вставке, удалении, обновлении» концепций, которые очень хорошо отображаются в таблицах базы данных, а не в количестве технических знаний пользователя, количестве доверенных пользователям или размере проекта.

2 голосов
/ 15 июля 2009

Это зависит. Администратор позволит вам немного настроить пользовательские группы, имеющие доступ к разным таблицам, и, если вы предоставите им доступ к различным интерфейсам администратора, вы можете даже предоставить им разные наборы столбцов, доступных в таблицах. Однако администратор на самом деле не настроен так, чтобы позволить вам ограничивать доступ пользователей на уровне строк на основе их уровня авторизации. Как только вы поместите их в таблицу, они смогут вносить изменения в любой доступный им объект.

Вы можете настроить виджеты так, как вам нравится, путем подкласса типов виджетов (хотя встроенные filter_horizontal и raw_id_admin необходимы и делают эту задачу простой для определенных типов данных!)

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

...