我的 mysql 记录中保存了如下所示的文本:Handmade itemMaterials: wooden handcrafted handle, professional laser engraved rubber, brown cardboard special gift box, authorial stamp passport上面的文字是我的附件模型中的概述,它是:from django.db import modelsclass Accessory(models.Model): img = models.ImageField(upload_to='accessories/', default='accessories/no.png') name = models.CharField(max_length=50) price = models.DecimalField(max_digits=5, decimal_places=2) img_inside1 = models.ImageField(upload_to='accessories/', default='accessories/no.png', blank=True) img_inside2 = models.ImageField(upload_to='accessories/', default='accessories/no.png', blank=True) img_inside3 = models.ImageField(upload_to='accessories/', default='accessories/no.png', blank=True) title = models.CharField(max_length=50) overview = models.TextField(blank=True) description = models.TextField()我想在<li>标签中显示每一行看起来像这样: <ul> <li><p>Handmade item</p></li> <li><p>Materials: wooden handcrafted handle, professional laser engraved rubber, brown cardboard special gift box, authorial stamp passport</p> </li> </ul>使用linebreaks过滤器不会应用<ul>默认样式(显示项目符号)。提前致谢!
1 回答

繁华开满天机
TA贡献1816条经验 获得超4个赞
快速而肮脏的解决方案: 在换行符上拆分字符串并迭代结果。
class Accessory(models.Model):
# ...
overview = models.TextField()
def overview_lines(self):
return filter(None, (line.strip() for line in self.overview.splitlines()))
进而
<ul>
{% for line in howeryounamedyourobject.overview_lines %}
<li><p>{{ line }}</p></li>
{% endfor %}
</ul>
更好的解决方案:
要么有合适的材料模型(具有多对多关系),要么在“概述”字段中使用标记而不是纯文本。
添加回答
举报
0/150
提交
取消