【问题标题】:How to slice in django template by a string如何通过字符串在 django 模板中切片
【发布时间】:2020-10-30 16:06:53
【问题描述】:

我只想在 django 上将一个字符串分成两部分,传递一个像“|”这样的字符

示例:2007-007134|10003L

第 1 部分:2007-007134

第 2 部分:10003L

我尝试了一些但没有成功

有人可以帮助我吗?

【问题讨论】:

  • 你的意思是这样吗?如果你有它:example="2007-007134|10003L" 那么 Part_1=example[:10] 和 part_2=example[12:]
  • 码长不固定,我有NE这样的码 | 02023,在这种情况下,它不能正确切片。
  • 分割点怎么样,比如破折号或点等,然后在上面切片,比如stackoverflow.com/questions/46766530/…

标签: python django django-templates


【解决方案1】:

创建自定义模板标签。它们基本上是 Python 代码,您可以从 html 模板内部执行(使用默认的 Django 模板引擎时)。

您可以在此处阅读有关它们的更多信息:

https://docs.djangoproject.com/en/3.1/howto/custom-template-tags/ https://www.codementor.io/@hiteshgarg14/creating-custom-template-tags-in-django-application-58wvmqm5f

【讨论】:

    【解决方案2】:

    我按照 Maciej Rogosz 的建议解决了: 自定义模板标签

    首先:我在我的应用程序中创建了文件夹 templatetags,然后创建了一个空的 ini.py,最后创建了我的 custom_tag.py:

    from django import template
    register = template.Library()
    
    @register.filter(name='split1')
    def split1(value, key):
      return value.split(key)[1]
    
    @register.filter(name='split2')
    def split2(value, key):
      return value.split(key)[0]
    

    在我的模板中,我必须加载模板标签

    {% load custom_tags %} 
    

    并调用我的 custom_tags: split1, split2

    {{ instance.mat_code|split1:"|" }}
    {{ instance.mat_code|split2:"|" }}
    

    就是这样,python + django = Magic

    感谢大家的帮助

    参考1:https://www.w3schools.com/python/ref_string_split.asp

    Ref2:https://www.codementor.io/@hiteshgarg14/creating-custom-template-tags-in-django-application-58wvmqm5f

    【讨论】:

      猜你喜欢
      • 2013-07-09
      • 2017-03-22
      • 2017-04-24
      • 2014-01-30
      • 2019-06-06
      • 2013-04-30
      • 2021-05-15
      • 2014-06-18
      • 2010-10-20
      相关资源
      最近更新 更多