raw_id_fields小部件替换,用于处理更改时对象字符串值的显示。

django-dynamic-raw-id的Python项目详细描述


https://img.shields.io/pypi/v/django-dynamic-raw-id.svghttps://travis-ci.org/bartTC/django-dynamic-raw-id.svg?branch=masterhttps://api.codacy.com/project/badge/Coverage/bb93482e6a6348058b993a42951a9f19https://api.codacy.com/project/badge/Grade/bb93482e6a6348058b993a42951a9f19

重要

django沙门氏菌被重命名为django dynamic raw id和 作为版本2.1重新发布。最新的django沙门氏菌版本是1.2。 请升级您的代码,请参阅下面的安装和使用。


Django动态原始ID

django admin raw_id_fields小部件替换,用于处理 对象更改时的字符串值,可以通过模板重写。 请参见此示例:

http://d.pr/i/10GtM.png

安装

该应用程序与Python2.7→3.7和所有版本兼容并经过测试 在1.8到2.1之间。

使用pip

安装包
$ pip install django-dynamic-raw-id

dynamic_raw_id放到INSTALLED_APPS列表中:

INSTALLED_APPS=(# ... other apps'dynamic_raw_id',)

并添加urlpattern

urlpatterns=[# ...url(r'^admin/dynamic_raw_id/',include('dynamic_raw_id.urls')),]

dynamic_raw_id附带了一些静态文件,因此不要忘记运行 manage.py collectstatic

使用量

要开始在应用程序中使用django动态raw id,只需 在ModelAdmin类中实现DynamicRawIDMixin,并添加所需的 列表中的字段dynamic_raw_id_fields

fromdynamic_raw_id.adminimportDynamicRawIDMixinclassUserProfileAdmin(DynamicRawIDMixin,admin.ModelAdmin):dynamic_raw_id_fields=('user',)

您也可以在管理筛选器中使用动态原始ID小部件:

fromdynamic_raw_id.adminimportDynamicRawIDMixinfromdynamic_raw_id.filtersimportDynamicRawIDFilterclassUserProfileAdmin(DynamicRawIDMixin,admin.ModelAdmin):list_filter=(('dynamic_raw_id_fk',DynamicRawIDFilter),)

自定义动态小部件的值

django dynamic raw id最酷的特性是能够定制输出 显示在DynamicRawIDWidget旁边的值的。有一个基本的 如果您只需要对象的__unicode__值,就可以实现。改变 显示的值就是实现正确的模板。

django dynamic raw id查找此模板结构dynamic_raw_id/<app>/<model>.htmldynamic_raw_id/<app>/multi_<model>.html(用于多值查找)。

例如,如果我有一篇blog文章,其中包含我想要的Userdynamic\u raw\u id字段 显示为Firstname Lastname,我将创建模板 dynamic_raw_id/auth/user.html带有:

<span>{{object.0.first_name}}{{object.0.last_name}}</span>

自定义管理url前缀

如果您有管理员位于不同 前缀超过/admin/dynamic_raw_id/您需要调整DYNAMIC_RAW_ID_MOUNT_URL js变量。

示例:

# In case the app is setup at /foobar/dynamic_raw_id/
url(r'^foobar/dynamic_raw_id/', include('dynamic_raw_id.urls')),

# Provide a
<script>
    window.DYNAMIC_RAW_ID_MOUNT_URL = "{% url "admin:index" %}";
</script>

理想的位置是adminbase_site.html模板。完整示例:

{%extends"admin/base.html"%}{%blocktitle%}{{title}} | {{site_title|default:_('Django site admin')}}{%endblock%}{%blockextrahead%}{{block.super}}<script>window.DYNAMIC_RAW_ID_MOUNT_URL="{%url"admin:index"%}";</script>{%endblock%}{%blockbranding%}<h1id="site-name"><ahref="{%url'admin:index'%}">{{site_header|default:_('Django administration')}}</a></h1>{%endblock%}{%blocknav-global%}{%endblock%}

测试和本地开发

testsuite使用selenium进行前端测试,我们需要firefox和 geckodriver待安装。你可以用 自制:

$ brew install geckodriver

在本地环境中使用:

$ cd django-dynamic-raw-id/
$ pipenv install --dev
$ pipenv run test

或者使用tox测试各种django和python版本:

$ tox -r

您还可以通过调用 带有测试应用程序设置的django-admin工具:

$ cd django-dynamic-raw-id/
$ pipenv install --dev
$ pipenv run django-admin
$ pipenv run django-admin test

这还允许您在testserver中运行内部测试应用程序,以 预览django dynamic raw id正在执行的操作示例:

$ pipenv run django-admin migrate
$ pipenv run django-admin createsuperuser
$ pipenv run django-admin runserver

注意

默认设置文件是在.env文件中设置的,该文件 pipenv自动公开:

DJANGO_SETTINGS_MODULE=dynamic_raw_id.tests.testapp.settings

更改日志

v2.6(2019-06-21)

  • 向后不兼容:已放弃对django<;1.11的支持。
  • 向后不兼容:放弃了对Python3.4的支持。
  • Django 2.2兼容性和测试。
  • 常规代码清理。
  • PIPENV支持本地开发。
  • 一些关于图标和对齐的视觉修复。

v2.5(2018-12-09)

  • Django 2.1兼容性和测试。

v2.4(2018-04-09)

  • 修复了管理视图中缺少的图标。
  • 修复了使用自定义/admin/url时缺少js处理的问题。

v2.3(2018-01-18)

  • 向后不兼容:将项目重命名为django dynamic raw id。 以反映它实际在做什么。
  • 修正了django 1.10及以下版本中的玻璃查找图标。
  • 媒体资产加载的特定顺序。

第1.2版(2018-01-17)

  • 多种修复和增强。
  • 全硒测试套件。
  • Django 2.0和Python3的兼容性。
  • PipeNV支持。

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

推荐PyPI第三方库


热门话题
有没有一种方法可以将不同的java web应用程序组合到一个web应用程序(war)中而不相互影响?   java一次屏蔽两位   java如何在多个类上初始化元素?   java在后台服务中处理通知或使用GCM(或其他推送通知服务)   java从const方法调用JNI函数   javascript如何使用函数/方法返回?   Java优化:声明类变量与使用临时变量   java字符算术基数8 vs基数10   Java流收集要存储的对象列表   swing我正在用Java中的keyListener制作一个精灵移动器   在Gradle构建脚本中使用Scala(或java)方法   java Android Mediaplayer下一步按钮不起作用   Java Sound API在播放音频文件后将其锁定   java将变量从外部类传递到内部类的最佳方法   使用play framework的博客web应用程序出现java逻辑错误   java我们可以在Spring批处理中处理大型zip文件吗?   java如何检查JTable的选定行的特定列中的值是否已经在JList中?