我尝试在很多领域使用Haystack的方面。我尝试了许多选择,最终遇到了障碍。我可以通过外壳使它工作(显然),如下所示。但是,当在模板中实现时,多面字段不会显示。
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 }}&selected_facets=type_exact:{{ type.0|urlencode }}">
{{ type.0 }}
</a>
({{ type.1 }})
{% endfor %}
{% else %}
<p>No categories.</p>
{% endif %}
</div>
{{ object.name }}
{{ object.description }}
{% for type in event.type.all %}
{{ event.type }}
{% endfor %}
我应该能够看到不同的类型(足球,篮球等)。相反,我只得到一个空值。
类别 ()
我认为我的模板中有问题,我想我应该遍历event.type,但是我无法弄清楚这一点...
谢谢!