Могу ли я использовать администратора Django в качестве приложения? - PullRequest
1 голос
/ 03 февраля 2011

Как все вы знаете, django предоставляет очень простую, но гибкую панель администратора для вашего проекта. Я видел здесь обсуждения, ссылающиеся на (не) преимущества. написания собственного интерфейса управления и использования интерфейса по умолчанию. Напомню, что imo , django.contrib.admin - для быстрых и простых проектов, не требующих сложного управления контентом; поэтому для полного контроля и полной настройки сайта, вероятно, следует реализовать соответствующий интерфейс администрирования.

Я хочу попробовать развернуть моего собственного администратора для проекта, над которым я работаю, но на самом деле не хочу заново раскручивать колесо, поэтому, возможно, я мог бы использовать администратора django как подключенное приложение в своем проекте, настраивая его Я бы хотел? У вас есть идеи, как это можно сделать? Может быть, уже есть несколько похожих приложений?

1 Ответ

2 голосов
/ 03 февраля 2011

У меня нет никаких советов для django.contrib.admin, так как я им не пользуюсь.Мои клиенты предпочитают встроенное обновление своего сайта, похожее на CMS (две «версии» их смущают), а я предпочитаю дополнительный контроль.

Итак, вы когда-либо использовали django.forms?Формы Django предоставят вам простой способ принять и проверить ввод в соответствии с вашими потребностями.Вы можете расширить форму с помощью собственных полей и настроить их проверку .Так, например, вы можете добавить поле в форму, которое вызывает ValidationError, если введенная строка содержит символы, которые вы хотите опустить, например.В Django есть много полезных полей ввода, в том числе EmailField.

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

fItem = ItemForm(request.POST) 
# or
# I = Item.objects.get(id=?)
# fItem = ItemForm(request.POST, instance=I) 

if f.is_valid():
    fItem.save()

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

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

Я лично свернул свой собственный, который я склонен использовать, потому что на одном из моих заданий клиент предъявлял особые требования к аутентификации и авторизации.Я не рекомендовал бы это - только используйте то, что там.Тем более что теперь есть аутентификационные бэкэнды , такие как Django-SocialAuth .

...