有没有办法(使用Django过滤器或任何其他语言)查找和切片动态生成的字符串的某些部分?我尝试过切片方法和截断方法
{{variable | slice:" 130:-60"}}或 {{variable | truncatechars:255}}
但这些方法都没有完全正确.....我正在研究天气警报(由国家气象局提供),每个警报都在前面和(有时)在后面带有一个唯一的ID。
唯一ID#和长度在60到130个字符之间变化,最后的ID是经度和纬度,但它只包括大约1/2的时间。
所以我正在寻找/正在研究代码,以及#34;嗅探"并删除唯一ID,并仅提供供用户查看的文字。
这样做的正确方法是什么?
以下是警告的示例:
INC077-437-75584393- / 09584738.EGY / W.0027 // KT.0215401321 / 1100 AM CDT WED 2015年5月13日在奥兰多佛罗里达附近的密西西比河上将继续淹没。 从晚上到晚上在上午6点结束时,舞台的时间是30.5英尺。 洪水阶段是30.6英尺晚上1000点的影响,一些水开始填充一些东西。 &安培;&安培; LAT ... LON 4125 5845 5458 6548 8964 5124 1234 8706 $$
和代码(我调用变量)我希望它是:
上午11点CDT WED 2015年5月13日在奥兰多佛罗里达附近的密西西比河将继续淹没。 从晚上到晚上在上午6点结束时,舞台的时间是30.5英尺。 洪水阶段是30.6英尺晚上1000点的影响,一些水开始填满一些水。
但是我无法剪切或截断,因为每个天气警报的长度都不同,每个唯一ID都是不同的#和不同的长度。
任何帮助表示赞赏!
答案 0 :(得分:0)
您可以为模型添加自定义方法,例如:
class Weather(models.Model):
alert = models.TextField()
@property
def get_id(self):
return self.alert.split('/')[-1]
在你的模板中:
<p>{{ weather.get_id }}</p>
您还可以创建自定义模板过滤器:
from django import template
register = template.Library()
@register.filter(name='get_id')
def get_id(value):
return value.split('/')[-1]
并以这种方式在模板中使用它:
<p>{{ weather|get_id }}</p>