django url模式帮助程序

urlman的Python项目详细描述


Test StatusTest Coverage Status

为django模型创建url的更好方法。

将诸如get_absolute_url之类的内容替换为.urls属性 可以引用其他url并构建合理的事物树,并且可以 然后使用instance.urls.name访问。

这样,您就可以在模型实例上直接使用url(而不是反转 通过url查找函数,不仅速度慢而且通常很难提供 的参数。您只需将{{ instance.urls.view }}放入模板中即可获得 一个链接。

它还允许您使用python字符串格式语法将参数放入 模型实例本身或来自同一集中的其他URL。

示例:

importurlmanmodelGroup(models.Model):...classurls(urlman.Urls):view="/{self.slug}/"users="{view}users/"admin="{view}admin/"defmy_view(request):group=...returnredirect(group.urls.view)

建议使用“view”作为 get_absolute_url,并在您的模型上具有这样的函数:

defget_absolute_url(self):returnself.urls.view

要构建完整的url,请使用full方法,如下所示:

defmy_view(request):group=...returnredirect(group.urls.admin.full(scheme='https'))

您可以在您的 url类从urlman默认值更改默认主题和主机名 分别是http和localhost。

如果使用django rest框架,可以使用urlman.UrlManField提供 具有一组URL的对象。它是这样使用的(只有urls参数 是必需的):

from urlman import UrlManField

class MySerializer(ModelSerializer):
    urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True)

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

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面