from django.db import models
from ckeditor.fields import RichTextField
+from taggit.managers import TaggableManager
class Category(models.Model):
slug = models.SlugField()
description = RichTextField(null=True, blank=True)
text = RichTextField(null=True)
+ tags = TaggableManager(blank=True)
# XXX: languages (models.ManyToManyField(Language))
class EpisodeIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
+ tags = indexes.MultiValueField(faceted=True)
def get_model(self):
return Episode
+ def prepare_tags(self, obj):
+ return [tag.name for tag in obj.tags.all()]
{{ object.description|striptags }}
{{ object.text|striptags }}
+
+{% for tag in object.tags.all %} {{ tag.name }} {% endfor %}
'south',
'ckeditor',
'haystack',
+ 'taggit',
'panikdb.emissions',
)
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
- 'URL': 'http://127.0.0.1:8080/solr'
+ 'URL': 'http://127.0.0.1:8983/solr/panik'
},
}
<!-- Begin faceting. -->
<p>
{% if facets.fields.categories %}
- {# Provide only the top 5 authors #}
+ Catégories :
+ {# Provide only the top 5 categories #}
{% for category in facets.fields.categories|slice:":5" %}
<span><a href="{{ request.get_full_path }}&selected_facets=categories_exact:{{ category.0|urlencode }}">{{ category.0 }}</a> ({{ category.1 }})</span>
{% endfor %}
{% endif %}
</p>
+<p>
+ {% if facets.fields.tags %}
+ Tags :
+ {# Provide only the top 5 tags #}
+ {% for tag in facets.fields.tags|slice:":5" %}
+ <span><a href="{{ request.get_full_path }}&selected_facets=tags_exact:{{ tag.0|urlencode }}">{{ tag.0 }}</a> ({{ tag.1 }})</span>
+ {% endfor %}
+ {% else %}
+ No tags facets.
+ {% endif %}
+</p>
+
+
<!-- End faceting -->
<h3>Résultats</h3>
from haystack.forms import FacetedSearchForm
from haystack.query import SearchQuerySet
-sqs = SearchQuerySet().facet('categories')
+sqs = SearchQuerySet().facet('categories').facet('tags')
urlpatterns = patterns('',
url(r'^$', RedirectView.as_view(url=reverse_lazy('emission-list'))),
Django<1.6
south>=0.8,<0.9
django-ckeditor
+django-taggit
git+https://github.com/toastdriven/django-haystack.git