为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Django模板中显示li标签中的一行文本?

如何在Django模板中显示li标签中的一行文本?

qq_遁去的一_1 2021-11-30 15:43:11
我的 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>

更好的解决方案:


要么有合适的材料模型(具有多对多关系),要么在“概述”字段中使用标记而不是纯文本。


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信