django模型url跟踪对象的url并在内容中插入动态链接。别担心,那页地址已经改了。所有的旧链接都将继续工作。

redsolutioncms.django-model-url的Python项目详细描述


Django模型URL帮助您正确显示指向所有对象的链接,即使页面的URL已更改。

使用案例

例如,您的网站上有新闻页面。 你从其他页面向新闻页面添加了很多链接。 有时你不得不更改新闻页面的url。这个动作导致了问题:所有的旧链接现在都断了。 当然,您可以将重定向从旧地址添加到新地址。这可以使应用程序更优雅地解决问题。

它是怎么工作的?

在用超链接保存到数据库的内容之前,django-model-url尝试用类似于{@ myapp.models.MyModel id @}的内容替换它。 模块将搜索显示指定URL的控制器(视图)。 如果找到控制器,模块将调用它并在传递给模板的上下文中查找对象。

当这样的“宏url”出现在响应中时,它将被替换为实际的url。

安装:

在设置中。py:

  1. 'modelurl'添加到INSTALLED_APPS中。

  2. 'modelurl.middleware.ModelUrlMiddleware'添加到MIDDLEWARE_CLASSES的末尾。

  3. 配置Django模型URL要使用的可用模型列表

    MODELURL_MODELS = [
        {
            'model': 'myapp.models.MyModel',
        },
        ...
    ]
    

四。配置返回指定模型的对象的视图列表。 还必须指定表示对象的上下文变量的名称

MODELURL_VIEWS = [
    {
        'view': 'myapp.views.get',
        'context': 'object',
    },
]

如果不想使用视图,可以禁用它:

MODELURL_VIEWS = [
    {
        'view': 'django.contrib.admin.site.root',
        'disable': True,
    },
]

用法:

在您的型号中:

  1. 保存前,您可以手动检查单个URL

    from modelurl.utils import ReplaceByView
    
    class MyModel(models.Model):
        url = models.CharField(max_length=200)
        def save(self, *args, **kwargs):
            self.url = ReplaceByView().url(self.url)
            super(MyModel, self).save(*args, **kwargs)
    
  2. 保存前可以检查HTML

    from modelurl.utils import ReplaceByView
    
    class MyModel(models.Model):
        html = models.TextField()
        def save(self, *args, **kwargs):
            self.html = ReplaceByView().html(self.html)
            super(MyModel, self).save(*args, **kwargs)
    
  3. 您可以将django模型url与django-trusted-html一起使用,以使您的html正确、美观和安全。

分类器:

Utilities

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

推荐PyPI第三方库


热门话题
java JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组