Создание всего веб-приложения с использованием администратора django - PullRequest
15 голосов
/ 24 марта 2009

Я думал, что django admin - это утилита для предоставления доверенным администраторам сайта полного доступа к модели данных сайта.

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

Как часто вы создаете целое приложение, используя только администратора? Легче ли создавать с использованием представлений, чем настраивать админ?

Как насчет создания прототипа с использованием admin. Нужно ли нам даже создавать прототип? Настройки администратора не могут быть повторно использованы в реальном приложении.

Если я хочу использовать часть кода администратора в реальном приложении (с разными шаблонами), есть ли какая-либо опция для работы с лесами?

Ответы [ 5 ]

18 голосов
/ 24 марта 2009

«Администратор - это не ваше приложение».

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

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

10 голосов
/ 24 марта 2009

Я делал что-то подобное раньше. Это была CMS для университета, полностью реализованная за счет расширения администратора Django. Оказалось, это было плохое дизайнерское решение. Мне приходилось прыгать через обручи, чтобы что-то делать.

Это действительно зависит от требований вашего приложения. Если должно быть много Ajax или какой-то особый рабочий процесс, расширение администратора не будет правильным решением. Но я думаю, что 60% случаев могут быть покрыты расширением админа.

Это также отлично подходит для создания прототипов.

EDIT

ОК, это было в 0,96 дней.

До сих пор я построил 2 "больших" сайта, которые полностью работают на вершине нового администратора. В основном это управление делами, ввод данных и отчетность, чтобы их можно было втиснуть в рабочий процесс администратора. Но не без больших усилий по расширению базового сайта, ModelAdmin, InlineModelAdmin и т. Д. Решение пойти по этому пути состоит в том, что мы были вынуждены сделать это быстро. Но в первом случае он также идеально подходил под требования. Оба работают на интранете в государственном секторе. Оба отлично справляются со своей работой. Одна с 200 таблицами обрабатывает десятки тысяч записей. Другой управляет платежами.

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

7 голосов
/ 03 января 2012

Я не согласен с большинством других ответов.

Проще говоря, нет совпадения с тем, что вы получаете бесплатно с помощью приложения администратора.

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

3 голосов
/ 24 марта 2009

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

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

В моем ответе на есть несколько полезных ссылок

0 голосов
/ 24 марта 2009

Короче говоря:

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

Я не могу представить себе целое (больше, чем rolodex) приложение, основанное только на django-admin.

A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...