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将引发什么异常?   java如何在每次加载的情况下注入活动?   java如何在Grails中从Http响应中获取布尔值   java Tomcat示例是如何工作的?   java Android Opencv增加FPS   eclipse mysql数据库中的java ping成功,但程序没有ping   java为JDialog设置默认关闭操作   java如何创建安全的Lombok JPA实体?   使用TIBCO EMS Java API,调用DestinationInfo需要做什么。getInboundStatistics()。getByteRate()返回1是什么意思?   在Tomcat上部署Java Play应用程序?   整数[]与整数[]的java内存使用:使用classmexer进行分析。罐子   java Spring错误连接被拒绝   java如何向JFace对话框的按钮栏添加新按钮   在Java中将大数据集加载到ArrayList(ArrayList的最大容量)   获取JAVA中DefaultTableModel中字段的值   java我想得到excel中显示的日期,比如日期类型单元格中的2014年12月1日   Java Android日历/日期格式此格式为XXXXXXXX   java将表连接到jtextbox   java Parcleable extra在开始活动后不在那里   java PageNotFound:1136在名为“spring”的DispatcherServlet中未找到URI为[]的HTTP请求的映射