Django段塞磨边管道

django-slugify-processor的Python项目详细描述


django_slugify_处理器:用于处理slugify边缘的管道

Python PackageDocumentation StatusBuild StatusCode CoverageLicense

什么是鼻涕虫?

slug是url,通常由post标题生成,您希望 同时具有可读性和有效的url。他们是搜索引擎友好。

django提供了一个slugify functiondjango.utils.text.slugify中,它也作为 default filter

django slug可以通过包在django模型中自动生成 例如:

问题

这个项目基于devel.tech的一篇文章 覆盖django’s import strings

角部病例存在塌陷。例如:

Term^{tt1}$What you want
Cc (correct)n/a
C++ccpp
C#cc-sharp

更糟糕的是,如果使用专门的模型字段 AutoSlugField来自django autoslug或django扩展,默认 行为可能是将C和C++的蛞蝓命名为“C-1”、“C -2”之后的“C”。 拿。

还有一个例子,缩写/速记:

Term^{tt1}$What you (may) want
New York Citynew-york-citynyc
Y Combinatory-combinatoryc
Portlandportlandpdx
Texastexastx
$‘’ (empty)usd, aud, etc?
US$ususd
A$aaud
bitcoinbitcoinbtc
United Statesunited-statesusa
League of Legendsleague-of-legendsleague
Apple® iPod Touchapple-ipod-touchipod-touch

每个网站和利基市场都有自己的鼻涕虫优势案例。所以我们需要一个解决方案 它可以伸缩,在那里你可以设计你自己的功能。

django slugify处理器如何帮助

它建立在django.utils.text.slugify之上,用于处理您的django 项目的边缘。默认情况下,django slugify处理器将通过 一直到Django的默认行为。通过添加段塞功能 Django项目的设置文件允许您进行调整。

安装

$ pip install django-slugify-processor

配置

要创建处理器,请创建一个接受字符串的函数,然后 返回字符串。假设这是project/app/slugify\u processors.py

defmy_processor(value):value=value.replace('++','pp')returnvalue

在设置中,添加一个SLUGIFY_PROCESSORS字符串列表 指向函数。任何与 import_string, 在您的设置文件中:

SLUGIFY_PROCESSORS=['project.app.slugify_processors.my_processor']

用法

在正常django代码中

django_slugify_processor.text导入slugify

fromdjango_slugify_processor.textimportslugifyprint(slugify('C++'))>'cpp'

模板代码

django slugify处理器设计用于覆盖内置的“slugify”`` 过滤。

通过加载

默认情况下,可以通过^{tt8}加载$ 在你的模板中。

在您的设置中INSTALLED_APPS

INSTALLED_APPS=['django_slugify_processor']

在您的模板中:

{%loadslugify_processor%}{{"C++"|slugify}}

通过内置的

要使其在所有模板中可用,请在 模板引擎,添加django_slugify_processor.template_tags

TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','OPTIONS':{'builtins':['django_slugify_processor.templatetags.slugify_processor',],},}]

从模板文件中:

{{"C++"|slugify}}

输出应为:cpp

型号

对于最新的文档,请查看 您正在使用的插件(例如django autoslug或django扩展)。

要使用django slugify处理器的slugify而不是django的默认值, 将有一个字段选项来使用该函数。

django扩展

用1.9.7测试(2017-11-26):

fromdjango.dbimportmodelsfromdjango_extensions.db.fieldsimportAutoSlugFieldfromdjango_slugify_processors.textimportslugifyclassMyModel(models.Model):title=models.CharField(max_length=255)slug=AutoSlugField(populate_from='title',slugify_function=slugify)

Django Autoslug

用1.9.3测试(2017-11-26):

fromdjango.dbimportmodelsfromautoslugimportAutoSlugFieldfromdjango_slugify_processors.textimportslugifyclassMyModel(models.Model):title=models.CharField(max_length=255)slug=AutoSlugField(populate_from='title',slugify=slugify)

学分

  • travis.yml和tox.ini基于DRF(BSD 2条款许可)
  • yapf配置基于rtd/devel.tech(mit许可)

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

推荐PyPI第三方库


热门话题
面向批处理的java非阻塞队列   java如何基于HttpComponent获取html内容   java为什么我的程序会显示此错误?   java spring控制器如何处理应用程序/octetstream请求?   尝试将数据插入数据库时出现java常规错误   无法在java多线程处理中维护生产者任务的顺序   java为什么JSON数据无法访问ViewPager?   java获取Maven中特定分支的SVN buildnumber   java客户端无法从服务器接收信息   java等轴测地图绘制,生成   java无法调试ProcessBuilder   java热点JVM阵列分配   在数组中存储“inputdialog”数据的java   saml Java Inflater引发DataFormatException“无效代码长度集”   从集合(爬虫、Jsoup、Java)写入文件