跳转到主要内容

django-salmonella已被重命名为django-dynamic-raw-id!这是一个原始ID字段小部件的替代品,用于处理对象字符串值的变化,并且可以通过模板进行覆盖。

项目描述

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

django-salmonella

A Django admin raw_id_fields widget replacement that handles display of an object’s string value on change and can be overridden via a template. See this example

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

安装

使用pip安装包

$ pip install django-salmonella

salmonella添加到您的INSTALLED_APPS列表中

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

并添加url模式

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

salmonella附带一些静态文件,所以别忘了运行manage.py collectstatic

使用

要在您的应用程序中使用django-salmonella,您需要做的就是在您的ModelAdmin类中实现SalmonellaMixin,并将所需的字段添加到salmonella_fields列表中

from salmonella.admin import SalmonellaMixin

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

您还可以在Admin过滤器中使用Salmonella小部件

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

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

自定义动态小部件的值

django-salmonella最酷的特性是可以自定义与SalmonellaIdWidget一起显示的值输出。如果您只想显示对象的__unicode__值,有一个基本实现。要更改显示的值,只需实现正确的模板。

Django-salmonella会查找以下模板结构salmonella/<app>/<model>.htmlsalmonella/<app>/multi_<model>.html(用于多值查找)。

例如,如果我有一个带有用户Salmonella字段的博客文章,我想要以Firstname Lastname的形式显示,我会在salmonella/auth/user.html中创建模板。

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

自定义管理URL前缀

如果您将管理器(以及 Salmonella脚本)放在除/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>

一个理想的位置是admin base_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工具来调用测试套件或其他“manage.py”命令

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

这还允许您在测试服务器上运行内部测试应用,以预览django-salmonella的功能样本

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

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-salmonella-1.2.1.tar.gz (13.0 kB 查看哈希值)

上传时间

构建分发

django_salmonella-1.2.1-py2.py3-none-any.whl (35.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面