【问题标题】:Cannot add tags to frontend views Django queryset无法将标签添加到前端视图 Django 查询集
【发布时间】:2019-06-23 18:04:30
【问题描述】:

我正在尝试从查询集列向我的视图添加标签,该列看起来像这样,用于一个观察,例如伟大的同义词:

  ['fun, cool, awesome']

当我尝试显示为单独的标签时,它只是打印为一个块:

  'fun, cool, awesome' 

这就是 views.py 传递这些数据的样子:

class SynDetailView(generic.DetailView):
     model = Syn
     template_name = "synonoms/syn_detail.html"

     def get_context_data(self, **kwargs):
        context = super(SynDetailView, self).get_context_data(**kwargs)
        tags  = Syn.objects.filter('synid'=self.kwargs.get('pk')).values_list('tags', flat=True)
        tags = str(tags)
        context['tags'] = [x.strip() for x in tags.split(',')]
        return context

编辑:我想像这样打印它们

'fun'
'cool'
'awesome'

【问题讨论】:

  • 您的问题到底是什么?如何在模板中打印该数组?
  • 你能分享你现有的模板文件吗?

标签: django django-views tags


【解决方案1】:

而不是将它们转换为字符串并拆分它们,您可以直接发送列表值,如下所示:

def get_context_data(self, **kwargs):
    context = super(SynDetailView, self).get_context_data(**kwargs)
    context['tags'] = Syn.objects.filter('synid'=self.kwargs.get('pk')).values_list('tags', flat=True)
    return context

然后你也可以去掉模板中的值:

{% for tag in tags %}
    {{ tag.strip }}
{% endfor %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 2018-03-10
    • 2013-07-13
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多