Django沙门氏菌被改名为Django动态原始ID!RavaIdIsFieldWIDGET替换,用于处理对象字符串值在更改时的显示,并可以通过模板重写。

django-salmonella的Python项目详细描述


重要

Django沙门氏菌被重新命名为Django-dynamic-raw-id。 不再维护。请看https://pypi.org/project/django-dynamic-raw-id/

https://travis-ci.org/lincolnloop/django-salmonella.svg?branch=masterhttps://codecov.io/github/lincolnloop/django-salmonella/coverage.svg?branch=master

Django沙门氏菌

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

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

安装

使用pip

安装包
$ pip install django-salmonella

salmonella放到INSTALLED_APPS列表中:

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

并添加urlpattern

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

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

使用量

要开始在应用程序中使用django沙门氏菌,您只需要 在ModelAdmin类中实现SalmonellaMixin,并添加所需的 列表中的字段salmonella_fields

from salmonella.admin import SalmonellaMixin

class UserProfileAdmin(SalmonellaMixin, admin.ModelAdmin):
    salmonella_fields = ('user',)

您也可以在管理筛选器中使用沙门氏菌小部件:

from salmonella.admin import SalmonellaMixin
from salmonella.filters import SalmonellaFilter

class UserProfileAdmin(SalmonellaMixin, admin.ModelAdmin):
   list_filter = (
       ('salmonella_fk', SalmonellaFilter),
   )

自定义动态小部件的值

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

Django沙门氏菌寻找这个模板结构^{TT12}$ 和salmonella/<app>/multi_<model>.html(用于多值查找)。

例如,如果我有一篇博客文章,其中包含我想要的User沙门氏菌字段 显示为Firstname Lastname,我将创建模板 salmonella/auth/user.html带有:

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

自定义管理url前缀

如果您的管理员沙门氏菌脚本位于不同的 前缀超过/admin/salmonella/您需要调整SALMONELLA_MOUNT_URL js变量。

示例:

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

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

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

{% extends "admin/base.html" %}

{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}

{% block extrahead %}
  {{ block.super }}
  <script>
    window.SALMONELLA_MOUNT_URL = "{% url "admin:index" %}";
  </script>
{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}

{% block nav-global %}{% endblock %}

测试和本地开发

在本地环境中使用:

$ cd django-salmonella/
$ pipenv install --dev
$ pipenv run python ./runtests.py

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

$ tox -r

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

$ cd django-salmonella/
$ pipenv install --dev
$ pipenv run django-admin
$ pipenv run django-admin test

这还允许您在testserver中运行内部测试应用程序,以 预览Django沙门氏菌正在做的事情:

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

注意

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

DJANGO_SETTINGS_MODULE=salmonella.tests.testapp.settings

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

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径