2011-02-03 3 views
1

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

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

ответ

2

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

Знаете ли вы, что вы когда-либо использовали django.forms? Формы Django предоставят вам простой способ принять и подтвердить ввод данных в соответствии с вашими потребностями. Вы можете расширить форму с помощью собственных пользовательских полей и настроить their validation. Например, вы можете добавить поле в форму, которая вызывает 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.

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

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