I'm trying to filter by FK but unable to. I want to filter records by author's name/username etc.
## Views.py
from drf_haystack.viewsets import HaystackViewSet
from .models import Note
from .serializers import NoteSerializer
class NoteSearchView(HaystackViewSet):
index_models = [Note]
serializer_class = NoteSerializer
## serializers.py
from drf_haystack.serializers import HaystackSerializer
from .search_indexes import NoteIndex
class NoteSerializer(HaystackSerializer):
class Meta:
index_classes = [NoteIndex]
fields = [
"text", "author", "pub_date"
]
## search_indexes.py
from haystack import indexes
from .models import Note
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
author = indexes.CharField(model_attr='user')
pub_date = indexes.DateTimeField(model_attr='pub_date')
text = indexes.CharField(document=True, use_template=True)
def get_model(self):
return Note
## note_text.txt
{{ object.title }}
{{ object.user.get_full_name }}
{{ object.body }}
## output
[
{
"text": null,
"pub_date": "2017-12-19T22:33:00Z",
"author": null
},
{
"text": null,
"pub_date": "2017-12-19T03:00:00Z",
"author": null
}
]