Django沙门氏菌被改名为Django动态原始ID!RavaIdIsFieldWIDGET替换,用于处理对象字符串值在更改时的显示,并可以通过模板重写。
django-salmonella的Python项目详细描述
重要
Django沙门氏菌被重新命名为Django-dynamic-raw-id。 不再维护。请看https://pypi.org/project/django-dynamic-raw-id/。
Django沙门氏菌
django admin raw_id_fields小部件替换,用于处理 对象更改时的字符串值,可以通过模板重写。 请参见此示例:
安装
使用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