2010-02-25 4 views
2

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

Панель администратора Django предназначена только для временных лесов, то есть для использования только во время начальной разработки приложения и для замены на пользовательский код, похожий на леса Rails?

Очевидно, с помощью панели администратора я получаю множество функций бесплатно, а новые функции добавляются. Я тоже получаю их бесплатно. Что делают другие люди?

ответ

5

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

«настраиваемость» администратора может быть несколько субъективной. Я видел, как команды сгибают его по своему усмотрению, но для этого требуется довольно хорошее знание нижнего уровня - детали моделей, форм (и, естественно, такие вещи, как ModelForms и FormSets) и шаблоны. Я думаю, что многие общепринятые знания и лучшие практики еще не появились в организованной документации. Будьте готовы сделать много копаний в исходном коде. Хорошей новостью является то, что вы, вероятно, уйдете с гораздо более глубоким пониманием того, как использовать некоторые из первоклассных объектов в рамках. Плохая новость - ваш босс, вероятно, не будет рад, что вам понадобилось больше всего дня, чтобы изменить один вход в форму.

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

3

Django Admin предназначен для тех вещей, где нет никакой ценности в выполнении чего-либо большего, чем предлагаемая по умолчанию добавка/изменение/удаление.

Базы данных полны поисковых и административных таблиц. Например, при преобразовании zip-кода в состояние отображения, которое не должен видеть конечный пользователь. Журнал выполнения пакетных заданий фона.

У вашего приложения, вероятно, есть несколько таблиц, которые являются более или менее «административными» - кто-то их поддерживает, но не большое сообщество пользователей.

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

Django вырос в новостном бизнесе. Писатели и редакторы готовят данные (используя интерфейс администратора). Клиенты читают данные через настраиваемые веб-страницы.

У нас есть административный персонал, который использует страницы администрирования. У нас настроены страницы для наших клиентов. Мы используем оба.

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

0

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

1

Нет, я бы не стал сравнивать его с лесами Rails. Из вашего вопроса неясно, какие проблемы вы используете, можете ли вы привести пример?

Существует множество настроек, которые вы можете сделать администратору, добавив классы custom ModelAdmin: скрыть поля, показать дополнительные поля, разрешить редактирование связанных элементов на одной странице или ограничить/фильтровать параметры, которые появляются во внешнем ключе поле. Вы также можете упростить поиск пользователей, добавив сортировку, фильтры на первую страницу, поля поиска. Более новые версии Django также позволяют создавать собственные пользовательские команды, которые могут применяться сразу к нескольким объектам.

Но если проблема не связана с основным списком изменений и формы редактирования, вы можете полностью настроить те, путем создания модели конкретных шаблонов и overriding the default admin templates.

3

Я задал подобный вопрос около 6 месяцев назад, когда я был первым начиная с Django.

Is it worth it using the built-in Django admin for a decent sized project?

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

Однако, если клиенты более склонны воспринимать способ работы приложения, тогда администратор Django будет в порядке, предполагая, что между вашими таблицами и данными, с которыми они имеют дело, обычно существует соответствие 1: 1.

Как сказал Брайан Люфт, очень просто создать интерфейсы для приложений CRUD, поэтому, если вы почувствуете, что в будущем вам понадобится какая-либо настройка, может быть проще всего написать свои собственные с самого начала. Вы всегда можете держать администратора django для своих собственных потребностей в качестве суперпользователя. Обычно это то, что я делаю, поэтому я могу легко получить доступ на уровне таблицы к полям изменений, которые могут не отображаться в обычном пользователе.