简单到你可能立刻感动落泪。
项目描述
适用于需要将特定语言的URL存储在数据库中,以便在模板中使用或作为重定向的情况的应用程序。
安装
使用pip安装django-keyed-urls
pip install django-keyed-urls
将keyed_urls和modeltranslation添加到INSTALLED_APPS。
为keyed_urls指定自定义的South迁移位置 - 当添加或删除LANGUAGES中的语言时,您确实希望使用South来处理模式更改
SOUTH_MIGRATION_MODULES = { 'keyed_urls': 'yourapp.migrate.keyed_urls', }
创建并运行数据库迁移
python manage.py schemamigration keyed_urls --initial python manage.py migrate keyed_urls
如果想要使用转发URL,请向URLconf文件中添加一个条目。建议使用i18n_patterns,因为这表示语言特定的重定向URL会自动正确处理
from django.conf.urls import include, url from django.conf.urls.i18n import i18n_patterns urlpatterns += i18n_patterns( '', url(r'', include('keyed_urls.urls'), )
使用方法
辅助工具
另外还有两个辅助工具可用。如果您需要在Python代码中使用URL,请使用以下代码片段
from keyed_urls import get_url some_url = get_url('some_key') some_other_url = get_url('some_key', language='en')
与从数据库中获取 KeyedURL 模型并访问其 url 属性相比,使用 get_url 的优点是 get_url 会缓存所有结果。由于 get_url 也被上述模板标签内部使用,这意味着您不必像直接使用模型那样过多地担心性能。如果找不到特定的URL,则 get_url 会引发一个 KeyDoesNotExist 异常。可以通过传递 fail_silently=True 来防止这种情况。
以下代码片段可以用来获取转发URL
from keyed_urls import get_forwarding_url url = get_forwarding_url('some_key') url = get_forwarding_url('some_key', language='de')
get_forwarding_url 仅仅是Django自己 reverse 方法的薄层包装。如果键无效,此方法会引发一个 NoReverseMatch 异常,但不会检查数据库中是否存在提供的键。当用户访问链接时,他们会收到一个404响应。为了使 get_forwarding_url 正常工作,您必须将 keyed_urls.urls 包含在您的URLconf中,如上所述,最好放在一个 i18n_patterns 块中。
项目详情
下载文件
下载适用于您平台的应用文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
django-keyed-urls-0.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e33f6e474c20d43ee4807d09fdc0e8ded462c5589fb75024bb99d179c7b5de20 |
|
MD5 | 31694a5c6e05db4181bb1b6fc26da330 |
|
BLAKE2b-256 | 58723a8ec0f7a5a1cae7263b7c5b648d270df29d2a577be4cf9c631e54e9117d |
django_keyed_urls-0.4.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97d942801db63aa0852e3a9b5a4c77e00a7f31eff30bc05f5ec12abfda0ecaa5 |
|
MD5 | e1bdcf7b8663c9dc1f94e3beabbddf7e |
|
BLAKE2b-256 | 808cb7da8f13143b6ae69ec62103bb65a5695441e9cfb43993ed4f7ff7825395 |