modeladmin实用程序

django-modeladmin-utils的Python项目详细描述


modeladmin实用程序

一个有用的Django ^ {Tt1}$MIXIN和模板的集合 标签

安装

pip install Django-modeladmin-utils
<H2>限制性混合蛋白

简介

有时,与指定对象的关系可能包含许多 反对。在这种情况下,将呈现一个大型的内联列表,其中 可能不需要。

用法

简单地向父模型ADMIN添加LimITILNELSADMIXIN,并指定 要在属性limit_inlines中限制的内联线。号码 显示的条目数由^{tt3}确定$ (默认为15)。

from modeladmin_utils.mixins import LimitInlinesAdminMixin

# ...

class SomeParentModelAdmin(LimitInlinesAdminMixin, admin.ModelAdmin):
    inlines = (MyRelationInline, AnotherRelativeInline)
    limit_inlines = (MyRelationInline, )

注释

  1. 若要使用templatetag,必须将应用程序添加到 settings.INSTALLED_APPS

    INSTALLED_APPS += (
        'modeladmin_utils',
    )
    
  2. 堆栈式和表格式内联线的修改模板示例, 基于django 1.4模板,在这个包中提供(在 templates/admin/edit_inlines)。但是,这些不是由 默认设置是为了避免混淆,使用它们只需复制模板 over、modify(请参见下面的特定说明)和set inline template属性,例如:

    class MyRelationInline(admin.TabularInline):
        template = 'path_to_your/templates/admin/edit_inlines/tabular.html'
    
  3. 而变更列表的相关模型是自动的 已确定,您还可以通过指定 内联上的unlimited_changelist_model属性。这是 如果内联用于“直通模型”,但链接应指向 目标模型。

    class MyRelationInline(admin.TabularInline):
        unlimited_changelist_model = 'myapp.MyTargetModel'
    

自定义模板示例

若要将链接添加到堆叠模板,请复制到原始模板上 templates/admin/edit_inline/stacked.py,并将上面的代码放在 div.tabular-header类似于so(注意,我使用的是 django-grappelli此处为模板:

{% load modeladmin_links %}

{# ... #}
{% link_to_changelist inline_admin_formset original as changelist_url %}
<div class="tabular-header">
<h2 class="grp-collapse-handler">
    {% if inline_admin_formset.opts.title %}{{ inline_admin_formset.opts.title }}{% else %}{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}{% endif %}
    {% if changelist_url %}
        &nbsp;({{inline_admin_formset.formset.limited_count}} / {{inline_admin_formset.formset.total_count}} displayed - <a href="{{ changelist_url }}">{% trans "Detailed View" %}</a>)
    {% endif %}
</h2>
{# ... #}

对于堆叠,请使用模板模板/admin/edit_inline/stacked.py:

{% load modeladmin_links %}

{# ... #}
<h2 class="grp-collapse-handler">
    {% if inline_admin_formset.opts.title %}
        {{ inline_admin_formset.opts.title }}
    {% else %}
        {{ inline_admin_formset.opts.verbose_name_plural|capfirst }}
    {% endif %}
    {% if changelist_url %}
        &nbsp;({{inline_admin_formset.formset.limited_count}} / {{inline_admin_formset.formset.total_count}} displayed - <a href="{{ changelist_url }}">{% trans "Detailed View" %}</a>)
    {% endif %}
</h2>
{# ... #}

< H2>通用搜索混合器< /H2>

简介

Django允许定义GenericForeignKey,但不允许 很容易通过它们(连接)进行查询。因此,做一些类似于搜索的事情 “通过”一个通用的fk不是很简单。

进入通用搜索混合程序!

此MIXIN重写MultAdmin .GET-SexCHyl结果方法 允许搜索泛型关系字段。

为了快速设置,只需使用GenericForeignKey字段名作为 “搜索字段”中的前缀。

例如:对于名为“related_to”的字段,可以使用以下命令: 搜索字段=(“相关名称”、“相关电子邮件”…)

或者,您可以在modeladmin中定义“related_search_mapping” 显式定义泛型字段的对象ID和允许的内容 类型(用于限制内容类型-更快的查询)。

示例(请参见admin.py中的更多内容)

# find out pk and ctype fields using the virtual field
related_search_mapping = {
    'my_generic_fkey': {}
}

# the manual, "define everything" way
related_search_mapping = {
    'my_generic_fkey': {
        'object_id': 'related_pk_field',
        'ctypes': 'content_type_field'
    }
}

注释

  • 所需django>;1.6
  • 目前,假设相关对象的id在所有模型中都是唯一的
H2>位点混合< < /H2>

注意:与较新的django版本一起过时

简介

在django 1.6推出之前 ModelAdmin.preserve_filters django admin的行为如下:

  1. 使用搜索/筛选功能筛选变更列表
  2. 单击其中一个结果条目
  3. 编辑并保存结果
  4. Django将您重定向到更改列表,而不存储筛选器
这一点引入了将客户端重定向到 保存更改表单后,恢复筛选器的更改列表。

使用量

简单地导入位置并放置它。作为任何 modeladmin子类,有关示例,请参见admin.py中的testlocationadmin。

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

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局