繁体   English   中英

删除两个字符串Django模板之间的字符串

[英]Removing strings in between two strings django templates

我有引用其他对象名称的对象来保存数据库事务

因此,当我渲染html页面时,它会打印一个这样的字符串(u'aRandomModel253', 0) <----那是它现在打印的确切字符串,我需要从该字符串中获取'aRandomModel253',这样我才能组织我的这样的网页<li><a href="/webapp/model/{{ aRandomModel253 }}">{{ aRandomModel253 }}</a></li>

我想尽可能在​​模板中执行此逻辑,并且我不想更改该对象的组织方式,但是花了很长时间才能按照我想要的方式组织它。

您可以使用字符串拼接。 如果您想要的东西总是用单引号引起来,则可以使用str.find()

例如:

String = "(u'aRandomModel253', 0)"

ModifiedString = [String.find("'"):String[String.find("'"):].find("'")]

这会将字符串从第一次出现的'拼接到第二次出现的字符'之前。 如果您需要更多说明,请询问。

使用了自定义标签过滤器https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/

from django import template

register = template.Library()

@register.filter
def number_and(value):
   return find_between(value,"'","'")



 def find_between( s, first, last ):
    try:
       start = s.index( first ) + len( first )
       end = s.index( last, start )
       return s[start:end]
    except ValueError:
       return ""

然后在模板中

{% load number_and %}
<html>{{model|number_and}}</html>

看起来您的对象是一个元组。 如果没有,则它可能具有其他.name属性或其他内容(如果没有,则应该可以添加它):

<div>{{ model.0 }}</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM