Настройка функциональности интерфейса администратора Django

Я новичок в django и немного застрял, пытаясь заставить сайт администратора работать так, как мне хотелось бы. Мне интересно, если для создания функций администратора, которые я хочу, лучше создать собственное приложение администратора с шаблоном, унаследованным от admin/base_site.html, используя вход в систему с перенаправлением, когда is_staff имеет значение true.

Первоначальные детали, которые заставляют меня думать об этом:

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

  2. Я хотел бы добавить функцию, позволяющую администратору добавлять экземпляр модели, который запускает создание экземпляров связанных с ним моделей, перенаправляет и т. д. Это требует добавления по крайней мере некоторых вызываемых объектов, которые я еще не понял, как на самом деле делать с какого-либо успеха в модели администратора, и на данный момент кажется проще просто быстро сделать это в views.py моего собственного приложения, а не пытаться играть с представлениями администратора.

В общем, создание пользовательского приложения администратора (с использованием перенаправления is_staff=true при входе в систему FrontEnd) кажется более гибким в долгосрочной перспективе и приведет к более продуманному и интуитивно понятному интерфейсу администратора для клиента, поэтому я полагаю, что мой вопрос: что делают полупрофессионалы? (если вы знаете, как взламывать представления и шаблоны администратора в свое удовольствие, вы не полупрофессионал :))

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


person HdN8    schedule 21.09.2010    source источник
comment
Используйте django.contrib.admin, не пишите свой собственный. В этом и заключается безумие (по моему опыту, а потом надоело все это повторяться и вернуться к админу).   -  person Dominic Rodger    schedule 21.09.2010
comment
Угу, черт. Что ж, в этом случае мне не хватает документации для написания функций для администратора, например, использование callables (def в модели администратора), настройка admin.py для отображения связанных элементов в одном и том же представлении (вложенные внешние ключи), добавление ссылок для упрощения навигация к связанным элементам... Документация django для этого не очень ясна, есть указатели?   -  person HdN8    schedule 21.09.2010
comment
напишите отдельный вопрос в Stack Overflow для каждой проблемы, с которой вы столкнулись (вероятно, делайте это по одному, чтобы люди не злились на вас за спам на сайте!) Убедитесь, что вопросы помечены django. Здесь есть куча людей, которые очень хорошо знают Джанго и будут рады помочь.   -  person Dominic Rodger    schedule 21.09.2010
comment
Нормально будет сделать. спасибо Доминик.   -  person HdN8    schedule 21.09.2010


Ответы (2)


Замедлять. Расслабляться. Следуйте философии Джанго.

  1. У вас есть «приложение». Он представляет данные. Сосредоточьтесь на презентации.

  2. У вас есть встроенный администратор по умолчанию для вашего «приложения». Он обновляет данные, и они уже есть.

  3. Если приложение администратора не соответствует вашим потребностям, обновите Forms и Models, чтобы приблизиться. Но не напрягайтесь возиться с админом. Подойдите как можно ближе. Но расслабьтесь об этом.

[Кроме того, «более интуитивный администратор» иногда не является точным описанием того, что вы пытаетесь сделать. Может быть, но я видел некоторые «более интуитивно понятные», которых на самом деле не было.]

более продуманный и интуитивно понятный интерфейс администратора для клиента.

Это часть приложения? Делает ли приложение больше, чем просто представление данных?

Если приложение транзакционное — добавление, изменение, удаление — грубые правила — что-то в этом роде, то это ваше приложение. Если вам нужен модный пользовательский интерфейс, это уже не администратор. Там нет перенаправления. Это ваше приложение.

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

Совет: как можно чаще используйте общие представления.

Помимо этого, вы говорите о своем приложении, а не взламываете админку, которая уже работает.

если вы знаете, как взламывать представления и шаблоны администратора в свое удовольствие, вы не полупрофессионал

Неправильный. Все исходники есть. Вы также можете прочитать его. Это то, что делают профи. Читаем источник. И мы не взламываем приложение администратора.

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

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

person S.Lott    schedule 21.09.2010
comment
Ха-ха, мне нравится заставка: Притормози, расслабься! Хотел бы я, но я даю щедрые обещания :) - person HdN8; 21.09.2010
comment
Спасибо за разъяснения, ваш пункт 3. Я думаю, это ответ, обновите формы и модели, чтобы приблизиться, но не связывайтесь с приложением администратора. Если вам нужен причудливый пользовательский интерфейс, то это уже не админка, это ваше приложение. Над этим мне нужно подумать :) Еще раз спасибо за ваш совет! - person HdN8; 21.09.2010
comment
Да, я тоже выбрал этот вариант и делаю представления для этих частей функционала. Это больше похоже на то, что я делаю это для другого конечного администратора, поэтому я хочу, чтобы управление было интуитивно понятным. Да, я использую это слово с осторожностью... - person HdN8; 22.09.2010

Пройдите также по ссылкам, упомянутым в этом посте. Это может быть полезно для вас.

Сложно ли настроить администратора Django?

person Ankit Jaiswal    schedule 22.09.2010