Source code for apps.posts.documents
from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl.registries import registry
from ..users.models import Category
from .models import Post, Tag
[docs]
@registry.register_document
class PostDocument(Document):
tags = fields.ObjectField(
properties={
"name": fields.TextField(),
}
)
categories = fields.ObjectField(
properties={
"name": fields.TextField(),
}
)
[docs]
class Index:
name = "posts"
[docs]
class Django:
model = Post
fields = [
"title",
]
related_models = [Tag, Category]
[docs]
def get_instances_from_related(self, related_instance):
if isinstance(related_instance, (Tag, Category)):
return related_instance.post_set.all()