一组TemplateTags,允许以简单而不明显的方式编辑页面前端的模型数据。

django-frontendadmin的Python项目详细描述


警告

此程序包未处于活动开发中。可能不起作用 使用最新的python和/或django版本。如果你愿意接手 项目请联系我。

Django前端管理

Django FrontendAdmin是一组模板标记,允许轻松而不具结构性的 在页面前端编辑模型数据的方法。

示例项目

这个包提供了一个简单的示例项目,一个带有注释的weblog。这是 一个快速的分步指南如何快速运行此程序:

  1. 打开终端和cd到django-frontendadmin/example_project/目录。
  2. $ ./manage.py syncdb并创建一个超级用户。
  3. $ ./manage.py runserver并将浏览器指向http://127.0.0.1:8000/admin/
  4. 使用步骤2中提供的用户名/密码验证您自己。
  5. 转到FrontPagehttp://127.0.0.1:8000/并开始播放。
  6. 在冰箱里放点啤酒给我打电话。:-)

快速安装说明

  1. frontendadmin放入INSTALLED_APPS的settings.py Django项目。

  2. 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',
    )
    
  3. 在urlsconf中包含前端管理url:

    (r'^frontendadmin/', include('frontendadmin.urls')),
    
  4. 在要使用的每个模板中加载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应用程序并使用通用视图,则 模板可能是这样的:

    {% 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 %}
    
  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_labelmodel_name且必须全部小写。 字典的值是module_nameform_class并且必须匹配 实际模块的大小写。

  3. 可以根据每个模型定义要包含或排除的字段 从你的设置里面。下面是阻止用户 能够更改其配置文件上的user字段,并将其限制为 他们应该能够编辑的信息:

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

    这将包括address1address2avatar字段 并从表单中排除user字段。注意两者的关键 字典是app_labelmodel_name且必须全部小写。

  4. >P>如果存在,默认情况下将使用自定义表单模板。对于模型 在应用程序中命名为entry,前台管理员将尝试使用blogfrontendadmin/blog_entry_form.html用于完整表单和frontendadmin/blog_entry_form_ajax.html 对于ajax表单。如果它们不存在,将使用默认值。

许可证

该应用程序是根据New BSD License授权的。查看许可文件 详细情况。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式