代码之家  ›  专栏  ›  技术社区  ›  Alexander Seredenko

在Django中修改呈现模板之前的数据

  •  1
  • Alexander Seredenko  · 技术社区  · 6 年前

    我需要做的只是在渲染之前替换模型中的一些项。所以每一个 business.address 用“,”替换“| |”。我想这样做:

    def category(request, q):
         businesses = Business.objects.filter(category_string__icontains=q)[:50]
    
         for b in businesses:
             if '||' in b.address:
                 b.address.replace('||', ', ')
                 print(b.address)
    

    但我还是看到了同样的线,没有更换。原因是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   heemayl    6 年前

    字符串在Python中是不可变的;因此, str.replace 不是 .

    您需要(再次)进行名称绑定:

    b.address = b.address.replace('||', ', ')