跳转到主要内容

一组templatetags,允许您以简单且不干扰的方式在页面前端编辑模型数据。

项目描述

django-frontendadmin

django-frontendadmin是一组templatetags,允许您以简单且不干扰的方式在页面前端编辑模型数据。

示例项目

此包提供了一个简单的示例项目,一个带有评论的博客。以下是如何快速启动此项目的快速指南

  1. 打开您的终端并切换到django-frontendadmin/example_project/目录。

  2. $ ./manage.py syncdb 并创建一个超级用户。

  3. $ ./manage.py runserver 并将您的浏览器指向http://127.0.0.1:8000/admin/

  4. 使用您在步骤2中提供的用户名/密码进行身份验证。

  5. 转到主页http://127.0.0.1:8000/并开始玩耍。

  6. 在冰箱里放些啤酒并叫我。:-)

快速安装说明

  1. frontendadmin添加到您的django项目的settings.py中的INSTALLED_APPS

  2. django.core.context_processors.request添加到您的django项目的settings.py中的TEMPLATE_CONTEXT_PROCESSORS。如果此功能不可用(默认从某天开始),请将此片段添加到您的设置中

    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',
    )
  3. 在urlsconf中包含frontendadmin urls

    (r'^frontendadmin/', include('frontendadmin.urls')),
  4. 在您想要使用前端amin链接的每个模板中加载frontendadmin_tags库。(见下文)

    {% load frontendadmin_tags %}
  5. 有三种模板标签可以用于创建、更改或删除对象

    {% 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应用并使用generic-views,那么您的模板可能如下所示

    {% for entry in object_list %}
    <div>
      <h2>{{ entry.title }}</h2>
      {{ entry.body }}
    <div>
    {% endfor %}

    前端admin的正确实现

    {% 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 %}
  6. 就这些。Frontendadmin将自动检查当前用户是否有对给定模型的添加/更改/删除权限。

    Frontendadmin使用jquery库内置了ajax支持。详细信息请参阅模板源代码。

自定义配置

  1. 如果与您要使用的模型注册,则将使用管理表单。如果您有一个名为EntryAdmin的模型管理器已注册在django.contrib.admin.site上,则Frontendadmin将使用与EntryAdmin.Meta.form指定的任何关联表单。

  2. 您还可以为特定模型设置要使用的表单。这些表单可能位于您的代码库中,或位于您的python路径上的任何位置。这对于自定义小部件,如分割日期时间字段和所见即所得编辑器非常有用。设置以下设置指令以查看自定义表单的实际效果

    FRONTEND_FORMS = {
        'blog.entry': 'blog.forms.EntryForm',
    }

    在本例中,位于blog应用中的entry模型将通过位于blog.forms模块中的EntryForm进行渲染。字典的键是app_label . model_name,并且必须是全部小写。字典的值是module_name . form_class,并且必须匹配实际模块的大小写。

  3. 您可以在设置内部为每个模型定义要包含或排除的字段。以下是一个片段,该片段阻止用户更改其个人资料中的user字段,并限制他们只能编辑他们应该能够编辑的信息

    FRONTEND_EXCLUDES = {
        'profiles.userprofile': ('user',)
    }
    FRONTEND_INCLUDES = {
        'profiles.userprofile': ('address1','address2','avatar')
    }

    这将包括address1address2avatar字段,并将user字段从表单中排除。请注意,两个字典的键都是app_label . model_name,并且必须是全部小写。

  4. 如果存在,将默认使用自定义表单模板。对于应用blog中的名为entry的模型,前端admin将尝试使用frontendadmin/blog_entry_form.html作为完整表单,并使用frontendadmin/blog_entry_form_ajax.html作为ajax表单。如果它们不存在,则将使用默认设置。

许可证

本应用程序根据New BSD License许可。有关详细信息,请参阅LICENSE文件。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

django-frontendadmin-0.5.tar.gz (10.1 kB 查看散列

支持者