无法将标签添加到前端视图Django queryset

时间:2019-06-23 18:04:30

标签: django django-views tags

我正在尝试从查询集列向视图添加标签,该列看起来像是一种观察,就像同义词一样很棒:

  ['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'

1 个答案:

答案 0 :(得分: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 %}