我正在尝试从查询集列向视图添加标签,该列看起来像是一种观察,就像同义词一样很棒:
['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'
答案 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 %}