In django-haystack, how can I use subclasses of models?

I am trying to get django-haystack (using xapian backend) to index my model here for field search nameand description.

I have a subclass Item, Devicewhich adds a field manufacturer.

The model is Itemdefined as follows:

class Item(models.Model):
    name = models.CharField(max_length=255, unique=True)
    description = models.TextField(null=True, blank=True)
    compatible_with = models.ManyToManyField('self', null=True, blank=True)
    often_with = models.ManyToManyField('self', null=True, blank=True)
    created_by = models.ForeignKey(User, null=True, blank=True, related_name='created_by')
    verified = models.BooleanField(default=False)
    verified_by = models.ForeignKey(User, null=True, blank=True, related_name='verified_by')
    date_created = models.DateField(auto_now_add=True)
    slug = models.SlugField(max_length=300, null=True, blank=True)

My subclass of django-haystacks is SearchIndexas follows:

class ItemIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    name = CharField(model_attr='name')
    description = CharField(model_attr='description')

site.register(Item, ItemIndex)

I installed this template in templates/search/indexes/catalog/item_text.txt:

{{ object.name }}
{{ object.description }}

What can I add to item_text.txtmake a field manufacturerindexed if and only if the model object is an instance Device?

+3
1
{% if device.manufacturer %}
{{ device.manufacturer }}
{% endif %}

... Haystack (, ), , Haystack ,

... , , , , , Django, .

( , if - Django 1.2; Django, , , , .)

+3

Source: https://habr.com/ru/post/1769832/


All Articles