django-autoslug
Django-autoslug 是一个可重用的 Django 库,提供了改进的 slug 字段,可以自动:
a) 从其他字段填充自身,
b) 保持值的唯一性,
c) 使用自定义的 ``slugify()`` 函数以获得更好的国际化支持。
该字段高度可配置。
要求
------------
*Python 3.8+ 或 PyPy*。
*Django 3.2* 或更高版本。
虽然可能在其他环境中成功使用 django-autoslug,但这些环境未经测试。
.. 注意:
PyPy3 不被官方支持,仅仅是因为在 CI 上出现了一些与 django-autoslug 本身无关的 ``__pycache__`` 权限问题。
安装
------------
.. code-block:: python
python -m pip install django-autoslug
示例
--------
简单示例:
.. code-block:: python
from django.db.models import CharField, Model
from autoslug import AutoSlugField
class Article(Model):
title = CharField(max_length=200)
slug = AutoSlugField(populate_from='title')
更复杂的示例:
.. code-block:: python
from django.db.models import CharField, DateField, ForeignKey, Model
from django.contrib.auth.models import User
from autoslug import AutoSlugField
class Article(Model):
title = CharField(max_length=200)
pub_date = DateField(auto_now_add=True)
author = ForeignKey(User)
slug = AutoSlugField(populate_from=lambda instance: instance.title,
unique_with=['author__name', 'pub_date__month'],
slugify=lambda value: value.replace(' ','-'))
文档
-------------
查看 ReadTheDocs 上的`完整文档 <https://django-autoslug.readthedocs.org>`_。
它会自动为最新版本构建。
社区
---------
该应用由 Justin Mayer 维护。最初由 Andy Mikhailenko 创建,后来由其他开发者改进。
他们列在 ``AUTHORS.rst`` 中。
欢迎提交问题和/或补丁。
有关首选工作流程的提示,请参阅 ``CONTRIBUTING.rst``。
许可
---------
Django-autoslug 是自由软件;你可以根据自由软件基金会发布的 GNU 较小通用公共许可证的条款重新分发或修改它;
可以选择使用许可证的第 3 版,或(由你选择)任何更新的版本。
Django-autoslug 的发布是希望它能有用,但不提供任何保证;甚至不提供对适销性或特定用途适用性的暗示保证。
有关更多详细信息,请参阅 GNU 较小通用公共许可证。
你应该已经收到了 GNU 较小通用公共许可证的副本;参见 COPYING.LESSER 文件。如果没有,
请查看`GNU 许可证 <http://gnu.org/licenses/>`_。