Нужны подсказки "отправной точки" о добавлении интерфейса с вкладками к администратору Django - PullRequest
2 голосов
/ 07 мая 2010

Я новичок в мире веб-разработки - это значит, что я новичок в javaScript / CSS. Сейчас я создаю веб-систему с Python Django. Мне интересно, не могли бы вы дать мне несколько советов в качестве отправной точки для добавления интерфейса с вкладками к администратору Django?

Например, есть 3 таблицы подробностей для основной таблицы, и я хочу использовать 3 разные вкладки для редактирования этих 3 таблиц подробностей на странице редактирования основной таблицы. Заранее спасибо!

1 Ответ

3 голосов
/ 07 мая 2010

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

Один простой способ сделать это, и первый подход, который вы можете использовать для начала тестирования, - это поместить каждую вкладку в отдельную fieldset и затем создайте интерфейс с вкладками, чтобы показать / скрыть их.Плюсы в том, что это действительно простой способ сделать это, минусы в том, что у вас нет особой гибкости, если вы не начнете переходить на большое DOM с помощью javascript.

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

Другой подход - переопределить шаблон change_form для этой конкретной модели и связать новые вкладки.на тот же URL, но с другими параметрами GET, например.... / mymodel /? active_tab = 2 и отметьте это в шаблоне / представлении и визуализируйте соответствующий контент.Самым известным преимуществом такого подхода является то, что пользователю не нужно включать JavaScript.

Вы можете проверить, как django-cms делает это ,Он имеет очень приятный интерфейс с вкладками для переключения между разными языками.Один из лучших способов решить, как начать делать что-то, - проверить, как это сделали другие.Просмотрите исходный код, установите его и начните экспериментировать!

Надеюсь, это поможет.

EDIT

Другой пример подхода здесь .Проще всего пройти через прикрепленный патч, чем полный код django-cms.Приветствия.

...