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第三方库


热门话题
c#安卓发布字节数组(图像)到WCF restful服务   java Android随机对象   如何在java中使用Jsch库处理密码过期   java动态SSL密钥库/证书选择   java Scroll在JScrollPane中不起作用   swing如何在java netbeans中创建隐藏的“退出”按钮?   java如何在NetBeans中刷新自定义bean?   java在主循环中“优雅地”中断线程   比较一下。java文件到。类文件   java读取14位和16位图像   java 安卓如何使用SharedReference编程秒表   java My应用程序在点击按钮后崩溃   清单3.7实际上是如何在java并发中工作的?   接收asn。通过javasocket发送1条消息   java读取带有数字的txt文件并将其保存在字符串矩阵中   shell将参数从java类传递到sh文件   spring属性“serviceBeans”引发异常;嵌套的例外是java。lang.NoSuchMethodError:javax。ws。rs.Path。有限公司