[英]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.