Административная панель Django предназначена для временных лесов? - PullRequest
2 голосов
/ 25 февраля 2010

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

Является ли админ-панель Django просто временным каркасом, то есть использоваться только при первоначальной разработке приложения и заменяться пользовательским кодом, подобным скаффолдингу Rails?

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

Ответы [ 5 ]

5 голосов
/ 25 февраля 2010

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

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

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

3 голосов
/ 25 февраля 2010

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

Стоит ли использовать встроенный администратор Django для проекта приличного размера?

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

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

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

3 голосов
/ 25 февраля 2010

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

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

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

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

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

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

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

1 голос
/ 25 февраля 2010

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

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

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

0 голосов
/ 25 февраля 2010

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

...