一组TemplateTags,允许以简单而不明显的方式编辑页面前端的模型数据。
django-frontendadmin的Python项目详细描述
警告
此程序包未处于活动开发中。可能不起作用 使用最新的python和/或django版本。如果你愿意接手 项目请联系我。
Django前端管理
Django FrontendAdmin是一组模板标记,允许轻松而不具结构性的 在页面前端编辑模型数据的方法。
示例项目
这个包提供了一个简单的示例项目,一个带有注释的weblog。这是 一个快速的分步指南如何快速运行此程序:
- 打开终端和cd到django-frontendadmin/example_project/目录。
- $ ./manage.py syncdb并创建一个超级用户。
- $ ./manage.py runserver并将浏览器指向http://127.0.0.1:8000/admin/。
- 使用步骤2中提供的用户名/密码验证您自己。
- 转到FrontPagehttp://127.0.0.1:8000/并开始播放。
- 在冰箱里放点啤酒给我打电话。:-)
快速安装说明
将frontendadmin放入INSTALLED_APPS的settings.py Django项目。
将django.core.context_processors.request添加到TEMPLATE_CONTEXT_PROCESSORS 在你的django项目的settings.py中。如果此选项不可用(默认为 有时)将此片段放入您的设置中:
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', 'django.core.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', )
在urlsconf中包含前端管理url:
(r'^frontendadmin/', include('frontendadmin.urls')),
在要使用的每个模板中加载frontendadmin_tags库 前端连接。(见下文):
{% load frontendadmin_tags %}
有三个模板标记可用于创建、更改或删除对象:
{% frontendadmin_add queryset_of_objects label_for_link %} {% frontendadmin_change object_to_change label_for_link %} {% frontendadmin_delete object_to_delete label_for_link %}
假设您有一个weblog应用程序并使用通用视图,则 模板可能是这样的:
{% for entry in object_list %} <div> <h2>{{ entry.title }}</h2> {{ entry.body }} <div> {% endfor %}
frontendadmin的正确实现是:
{% frontendadmin_add object_list %} {% for entry in object_list %} <div> <h2>{{ entry.title }}</h2> {{ entry.body }} {% frontendadmin_change entry %} {% frontendadmin_delete entry %} <div> {% endfor %}
自定义标签可以用作任何标记的最后一个参数:
{% frontendadmin_add object_list 'Post an entry' %} {% for entry in object_list %} <div> <h2>{{ entry.title }}</h2> {{ entry.body }} {% frontendadmin_change entry 'Edit this entry' %} {% frontendadmin_delete entry 'Remove it permanently' %} <div> {% endfor %}
就这些。FrontendAdmin将自动检查当前用户是否 为给定模型添加/更改/删除权限。
frontendadmin使用jquery库内置了ajax支持。见 有关详细信息的模板源。
自定义配置
如果向您尝试使用的模型注册,则将使用管理表单。如果你有 名为EntryAdmin的模型管理员在django.contrib.admin.site注册,然后 frontendadmin将使用在EntryAdmin.Meta.form中指定的与关联的任何表单。
您还可以设置将用于特定模型的窗体。表格可以 在你的代码库中,或者在你的python路径上的任何地方。这对于自定义小部件很方便 比如拆分日期时间字段和所见即所得编辑器。设置以下设置 查看自定义表单的指令:
FRONTEND_FORMS = { 'blog.entry': 'blog.forms.EntryForm', }
在本例中,blog应用程序中的entry模型将使用 blog.forms模块中的EntryForm。关键在于 字典是app_label。model_name且必须全部小写。 字典的值是module_name。form_class并且必须匹配 实际模块的大小写。
可以根据每个模型定义要包含或排除的字段 从你的设置里面。下面是阻止用户 能够更改其配置文件上的user字段,并将其限制为 他们应该能够编辑的信息:
FRONTEND_EXCLUDES = { 'profiles.userprofile': ('user',) } FRONTEND_INCLUDES = { 'profiles.userprofile': ('address1','address2','avatar') }
这将包括address1、address2和avatar字段 并从表单中排除user字段。注意两者的关键 字典是app_label。model_name且必须全部小写。
许可证
该应用程序是根据New BSD License授权的。查看许可文件 详细情况。