use django-taggit for tags
This commit is contained in:
parent
97cc8c7008
commit
3f37ad5c31
|
@ -4,3 +4,4 @@ django-select2
|
||||||
django-ckeditor<4.5.3
|
django-ckeditor<4.5.3
|
||||||
django-haystack
|
django-haystack
|
||||||
django-reversion
|
django-reversion
|
||||||
|
django-taggit
|
||||||
|
|
1
setup.py
1
setup.py
|
@ -103,6 +103,7 @@ setup(
|
||||||
'django-ckeditor<4.5.3',
|
'django-ckeditor<4.5.3',
|
||||||
'django-haystack',
|
'django-haystack',
|
||||||
'django-reversion',
|
'django-reversion',
|
||||||
|
'django-taggit',
|
||||||
'requests',
|
'requests',
|
||||||
'whoosh',
|
'whoosh',
|
||||||
],
|
],
|
||||||
|
|
|
@ -20,6 +20,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from ckeditor.fields import RichTextField
|
from ckeditor.fields import RichTextField
|
||||||
import reversion
|
import reversion
|
||||||
|
from taggit.managers import TaggableManager
|
||||||
|
|
||||||
|
|
||||||
@reversion.register
|
@reversion.register
|
||||||
|
@ -27,7 +28,8 @@ class Page(models.Model):
|
||||||
title = models.CharField(_('Title'), max_length=200)
|
title = models.CharField(_('Title'), max_length=200)
|
||||||
slug = models.SlugField(_('Slug'))
|
slug = models.SlugField(_('Slug'))
|
||||||
content = RichTextField(_('Text'))
|
content = RichTextField(_('Text'))
|
||||||
keywords = models.CharField(_('Keywords'), max_length=200, blank=True)
|
tags = TaggableManager(_('Keywords'), blank=True,
|
||||||
|
help_text=_('A comma-separated list of tags.'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['title']
|
ordering = ['title']
|
||||||
|
|
|
@ -27,13 +27,16 @@ class PageIndex(indexes.SearchIndex, indexes.Indexable):
|
||||||
text = indexes.CharField(document=True)
|
text = indexes.CharField(document=True)
|
||||||
text_auto = indexes.EdgeNgramField()
|
text_auto = indexes.EdgeNgramField()
|
||||||
slug = indexes.CharField(model_attr='slug', indexed=False)
|
slug = indexes.CharField(model_attr='slug', indexed=False)
|
||||||
keywords = indexes.CharField(model_attr='keywords', boost=1.5)
|
tags = indexes.CharField(boost=1.5)
|
||||||
|
|
||||||
def get_model(self):
|
def get_model(self):
|
||||||
return Page
|
return Page
|
||||||
|
|
||||||
def prepare_text(self, obj):
|
def prepare_text(self, obj):
|
||||||
return obj.title + ' ' + obj.keywords + ' ' + HTMLParser().unescape(strip_tags(obj.content))
|
return obj.title + ' ' + self.prepare_tags(obj) + ' ' + HTMLParser().unescape(strip_tags(obj.content))
|
||||||
|
|
||||||
def prepare_text_auto(self, obj):
|
def prepare_text_auto(self, obj):
|
||||||
return self.prepare_text(obj)
|
return self.prepare_text(obj)
|
||||||
|
|
||||||
|
def prepare_tags(self, obj):
|
||||||
|
return ' '.join([tag.name for tag in obj.tags.all()])
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
<p class="keywords">
|
<p class="keywords">
|
||||||
{% trans 'Keywords:' %}
|
{% trans 'Keywords:' %}
|
||||||
{{ object.keywords }}
|
{% for tag in object.tags.all %}{{tag}}{% if not forloop.last %}, {% endif %}{% endfor %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -44,6 +44,7 @@ INSTALLED_APPS = (
|
||||||
'ckeditor',
|
'ckeditor',
|
||||||
'haystack',
|
'haystack',
|
||||||
'reversion',
|
'reversion',
|
||||||
|
'taggit',
|
||||||
'welco.sources.counter',
|
'welco.sources.counter',
|
||||||
'welco.sources.mail',
|
'welco.sources.mail',
|
||||||
'welco.sources.phone',
|
'welco.sources.phone',
|
||||||
|
|
Loading…
Reference in New Issue