Django Haystack with elasticsearch returning empty queryset while data exists

805 views Asked by At

I am doing a project in Python, django rest framework. I am using haystack SearchQuerySet. My code is here.

from haystack import indexes
from Medications.models import Salt

class Salt_Index(indexes.SearchIndex, indexes.Indexable):

text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name',null=True)
slug = indexes.CharField(model_attr='slug',null=True)
if_i_forget = indexes.CharField(model_attr='if_i_forget',null=True)
other_information = indexes.CharField(model_attr='other_information',null=True)
precautions = indexes.CharField(model_attr='precautions',null=True)
special_dietary = indexes.CharField(model_attr='special_dietary',null=True)
brand = indexes.CharField(model_attr='brand',null=True)
why = indexes.CharField(model_attr='why',null=True)
storage_conditions = indexes.CharField(model_attr='storage_conditions',null=True)
side_effects = indexes.CharField(model_attr='side_effects',null=True)

def get_model(self):
    return Salt

def index_queryset(self, using=None):
    return self.get_model().objects.all()

and my views.py file is -

from django.views.generic import View
from haystack.query import SearchQuerySet
from django.core import serializers

class Medication_Search_View(View):

def get(self,request,format=None):
    try:
        get_data = SearchQuerySet().all()
        print get_data 
        serialized = ss.serialize("json", [data.object for data in get_data])
        return HttpResponse(serialized)

    except Exception,e:
        print e

my python manage.py rebuild_index is working fine (showing 'Indexing 2959 salts') but in my 'views.py' file , SearchQuerySet() is returning an empty query set...

I am very much worried for this. Please help me friends if you know the reason behind getting empty query set while I have data in my Salt model.

2

There are 2 answers

0
Ashok Joshi On BEST ANSWER

My problem is solved now. The problem was that i had wriiten apps name with capital letters and the database tables were made in small letters(myapp_Student). so it was creating problem on database lookup.

0
C P Verma On

you should check app name it is case sensitive.try to write app name in small letters