如果我的一个搜索索引上有一个多值字段,并且我想在搜索结果中显示每个值,我该如何做?似乎有些东西的格式不合适,或者我不知怎么误解了多值字段?
class PageAttachmentIndex(indexes.SearchIndex):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='name')
page = indexes.IntegerField(model_attr='page_id')
attrs = indexes.MultiValueField()
file = indexes.CharField(model_attr='file')
filesize = indexes.IntegerField(model_attr='file__size')
timestamp = indexes.DateTimeField(model_attr='timestamp')
url = indexes.CharField(model_attr='page')
def prepare_attrs(self, obj):
""" Prepare the attributes for any file attachments on the
current page as specified in the M2M relationship. """
attributes = obj.attributes.all()
return attributes
在我的模板视图中利用此功能:
{% if result.attrs|length %}
<div class="attributes">
<ul>
{% for a in result.attrs %}
<li class="{% cycle "clear" "" "" %}"><span class="name">{{ a.name }}</span>: <span class="value">{{ a.value }}</span></li>
{% endfor %}
</ul>
<div class="clear"></div>
</div>
{% endif %}
这对我来说似乎什么都没有:(