在 Django 中切片动态生成的字符串的中间
slice the middle of a dynamically generated string in Django
有没有办法(使用 Django 过滤器或任何其他语言)查找和切片动态生成的字符串的某些部分?我已经尝试了 slice 方法和 truncate 方法
{{variable|slice:"130:-60"}} 或
{{variable|truncatechars:255 }}
但是这些方法都不是完全正确的.....我正在处理天气警报(由国家气象局提供)并且每个警报的正面和(有时)背面都有一个唯一的 ID也。
唯一 ID # 和长度在 60 到 130 个字符之间变化,最后的 ID 是经度和纬度,但它只包含大约 1/2 的时间。
所以我正在寻找/编写 "sniff out" 的代码并删除唯一 ID,只提供用户可以看到的文本。
执行此操作的正确方法是什么?
这是一个警报示例:
INC077-437-75584393-/09584738.EGY/W.0027//KT.0215401321/ 1100 AM CDT 2015 年 5 月 13 日星期三 佛罗里达州奥兰多附近的密西西比河将继续泛滥。 从今天晚上到时间结束,星期三早上 600 点,舞台高度为 30.5 英尺。 洪水位为 30.6 英尺 影响到今晚 1000 点,一些水开始填满一些沟渠。 && 纬度...经度 4125 5845 5458 6548 8964 5124 1234 8706 $$
并使用代码(我调用变量的地方)我希望它是:
1100 AM CDT 2015 年 5 月 13 日星期三,佛罗里达州奥兰多附近的密西西比河将继续泛滥。 从今天晚上到时间结束,星期三早上 600 点,舞台高度为 30.5 英尺。 洪水位为 30.6 英尺 影响到今晚 1000 点,一些水开始填满一些沟渠。
但我无法剪切或截断,因为每个天气警报的长度都不同,每个唯一 ID 都是不同的 # 和不同的长度。
感谢任何帮助!
您可以向模型添加自定义方法,例如:
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>
有没有办法(使用 Django 过滤器或任何其他语言)查找和切片动态生成的字符串的某些部分?我已经尝试了 slice 方法和 truncate 方法
{{variable|slice:"130:-60"}} 或 {{variable|truncatechars:255 }}
但是这些方法都不是完全正确的.....我正在处理天气警报(由国家气象局提供)并且每个警报的正面和(有时)背面都有一个唯一的 ID也。
唯一 ID # 和长度在 60 到 130 个字符之间变化,最后的 ID 是经度和纬度,但它只包含大约 1/2 的时间。
所以我正在寻找/编写 "sniff out" 的代码并删除唯一 ID,只提供用户可以看到的文本。
执行此操作的正确方法是什么?
这是一个警报示例:
INC077-437-75584393-/09584738.EGY/W.0027//KT.0215401321/ 1100 AM CDT 2015 年 5 月 13 日星期三 佛罗里达州奥兰多附近的密西西比河将继续泛滥。 从今天晚上到时间结束,星期三早上 600 点,舞台高度为 30.5 英尺。 洪水位为 30.6 英尺 影响到今晚 1000 点,一些水开始填满一些沟渠。 && 纬度...经度 4125 5845 5458 6548 8964 5124 1234 8706 $$
并使用代码(我调用变量的地方)我希望它是:
1100 AM CDT 2015 年 5 月 13 日星期三,佛罗里达州奥兰多附近的密西西比河将继续泛滥。 从今天晚上到时间结束,星期三早上 600 点,舞台高度为 30.5 英尺。 洪水位为 30.6 英尺 影响到今晚 1000 点,一些水开始填满一些沟渠。
但我无法剪切或截断,因为每个天气警报的长度都不同,每个唯一 ID 都是不同的 # 和不同的长度。
感谢任何帮助!
您可以向模型添加自定义方法,例如:
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>