2010-02-01 50 views
0
from django.db import models 
from djangosphinx.models import SphinxSearch 

class MyModel(models.Model): 
    search = SphinxSearch() # optional: defaults to db_table 
    # If your index name does not match MyModel._meta.db_table 
    # Note: You can only generate automatic configurations from the ./manage.py script 
    # if your index name matches. 
    search = SphinxSearch('index_name') 

    # Or maybe we want to be more.. specific 
    searchdelta = SphinxSearch(
     index='index_name delta_name', 
     weights={ 
      'name': 100, 
      'description': 10, 
      'tags': 80, 
     }, 
     mode='SPH_MATCH_ALL', 
     rankmode='SPH_RANK_NONE', 
    ) 

queryset = MyModel.search.query('query') 
results1 = queryset.order_by('@weight', '@id', 'my_attribute') 
results2 = queryset.filter(my_attribute=5) 
results3 = queryset.filter(my_other_attribute=[5, 3,4]) 
results4 = queryset.exclude(my_attribute=5)[0:10] 
results5 = queryset.count() 

# as of 2.0 you can now access an attribute to get the weight and similar arguments 
for result in results1: 
    print result, result._sphinx 
# you can also access a similar set of meta data on the queryset itself (once it's been sliced or executed in any way) 
print results1._sphinx 

Django的錯誤,有關Django的獅身人面像

Traceback (most recent call last): 
    File "D:\zjm_code\sphinx_test\models.py", line 1, in <module> 
    from django.db import models 
    File "D:\Python25\Lib\site-packages\django\db\__init__.py", line 10, in <module> 
    if not settings.DATABASE_ENGINE: 
    File "D:\Python25\Lib\site-packages\django\utils\functional.py", line 269, in __getattr__ 
    self._setup() 
    File "D:\Python25\Lib\site-packages\django\conf\__init__.py", line 38, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

回答

0

的錯誤是關於環境。 Django無法找到您的設置文件;你在幹什麼

python manage.py runserver

本身,還是其他什麼東西?

1

我知道是什麼問題:)

您正在嘗試運行該腳本獨立。但是因爲你使用django模型。所有這些都必須在您的namespace進口。這是什麼錯誤。這顯然是天ImportError

解決 - 轉到您的django-project目錄&,然後鍵入python manage.py shell。這導入所有的Django-env文件。現在導入您的模型&嘗試搜索。