多个字段中的构面不会显示在模板中

时间:2019-01-02 20:19:47

标签: django django-haystack

我尝试在很多领域使用Haystack的方面。我尝试了许多选择,最终遇到了障碍。我可以通过外壳使它工作(显然),如下所示。但是,当在模板中实现时,多面字段不会显示。

从Django Shell中提取

  • 从haystack.query导入SearchQuerySet
  • sqs = SearchQuerySet()。facet('type')
  • sqs.facet_counts()
  • {'fields':{'type':[('Soccer',2),('Basketball',1),('Golf',1),('Swimming',1)]},'dates ':{},'查询':{}}

搜索Index.py

class EventIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name')
owner = indexes.CharField(model_attr='user')
created_on = indexes.DateTimeField(model_attr='created_on')
type = indexes.MultiValueField(faceted=True)

def get_model(self):
return Event

def prepare_type(self, obj):
return [(t.name) for t in obj.type.all()]

def index_queryset(self, using=None):
return self.get_model().objects.prefetch_related('type').all()

模板

<!-- Begin faceting. -->
<div>
{% if facets.fields.type %}
<h5>Categories</h5>
{# Provide only the top 5 categories #}
{% for category in facets.fields.type|slice:":5" %}
<a href="{{ request.get_full_path }}&amp;selected_facets=type_exact:{{ type.0|urlencode }}">
{{ type.0 }}
</a>
({{ type.1 }})
{% endfor %}
{% else %}
<p>No categories.</p>
{% endif %}
</div>

event_text.txt

{{ object.name }}
{{ object.description }}
{% for type in event.type.all %}
{{ event.type }}
{% endfor %}

我应该能够看到不同的类型(足球,篮球等)。相反,我只得到一个空值。

类别 ()

我认为我的模板中有问题,我想我应该遍历event.type,但是我无法弄清楚这一点...

谢谢!

0 个答案:

没有答案