django xadmin的扩展
django-xadmin-extras的Python项目详细描述
django-xadmin的附加功能
新功能:
Form wizard class working like django form wizard.
Allow adding custom menu entries via AppConfig.
django-hstore support when editing objects.
Views for external apps:
表单向导
将django窗体向导与xadmin视图集成:
使用向导的任何视图都应继承自FormWizardAdminView
fromxadmin_extras.wizardimportFormWizardAdminView,SessionWizardViewMixinclassNotificateView(SessionWizardViewMixin,FormWizardAdminView):"""A wizard view working together with xadmin, using SessionWizard backend """form_list=[SelectFilterForm,NotificateForm]form_template='admin/fbapps/notificate_form.html'title='FB Push notifications'
其他向导后端可用:SeistWiZordVIEW MIXIN和CookieWizardViewMixin
有关窗体向导的详细信息,请参见django documentation
若要注册一个视图以供管理员使用,并提供名称和保护,请使用register\u view():
importxadminxadmin.site.register_view(r'fbapps/notificate/$',NotificateView,name='fbapps_notification_view')
django hstore支持
将小部件XadminHStoreWidget添加到表单定义:
fromdjango_hstore.formsimportDictionaryFieldfromxadmin_extras.django_hstore.widgetsimportXAdminHStoreWidgetfromdjangoimportformsclassHStoreForm(forms.Form):data=DictionaryField(widget=XadminHStoreWidget())
外部应用程序支持
具有自定义视图的应用程序在ext文件夹中定义
django芹菜
importxadmin_extras.ext.celeryasext_celeryxadmin.site.register(ext_celery.celery_models.PeriodicTask,ext_celery.PeriodicTaskAdmin)xadmin.site.register(ext_celery.celery_models.IntervalSchedule,ext_celery.IntervalScheduleAdmin)xadmin.site.register(ext_celery.celery_models.CrontabSchedule,ext_celery.CrontabScheduleAdmin)
django设置
importxadmin_extras.ext.settingsasext_settingsxadmin.site.register(ext_settings.models.Setting,ext_settings.SettingsAdmin)
django邮件工厂
(By default, the mails will be at URL: /admin/mails/)
fromxadmin.viewsimportCommAdminView,filter_hook,FormAdminViewimportxadmin_extras.ext.mailfactoryasext_mailfactoryxadmin.site.register_view(r'^mails/$',ext_mailfactory.MailListView,name='mail_factory_list')xadmin.site.register_view(r'^mails/(?P<mail_name>.*)/$',ext_mailfactory.MailFormView,name='mail_factory_form')xadmin.site.register_view(r'^mails/(?P<mail_name>.*)/preview/(?P<lang>\w+)/$',ext_mailfactory.MailPreviewMessageView,name='mail_factory_preview_message')