2014-01-23 5 views
1

Я пытаюсь создать настраиваемый сгенерированный RSS-канал, используя встроенный в Syndication Framework django. Я использую mongoengine для интерфейса django с mongoDB.Использование модуля синдикации django с mongoengine

Я сохраняю набор документов, которые содержат список тегов, прикрепленных к каждому документу. Это моделируется как:

class Request(Document): 
    ... 
    tags = ListField(StringField()) 
    ... 

В идеале я хотел бы сделать это, чтобы пользователи вводят в серии тегов и получить канал RSS для получения списка последних документов, с этим тегом. Ex. .../subscribe/One/Two вытащил фид с метками «Один» и «Два».

Я сопоставляются мой urls.py файл, чтобы соответствовать этим:

url(r'^subscribe/(?P<pattern>.+)', KeywordsFeed(), name='subscribe') 

Но я получаю ошибку о том, что

settings.DATABASES настроен неправильно. Пожалуйста, поставьте значение ДВИГАТЕЛЬ. Проверьте документацию по настройкам для получения более подробной информации.

Поскольку я использую mongoengine, мой файл настроек выглядит следующим образом:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.dummy', 
    } 
} 
MONGODB_NAME = 'mydb' 
mongoengine.connect(MONGODB_NAME) 

Вот feeds.py:

class KeywordsFeed(Feed): 
    title = "Data Request Repository" 
    link = "/" 
    description = "Description" 

    def get_object(self, request, pattern): 
     patternlist = string.split(pattern, r'/') 
     pdb.set_trace() 
     resultList = Request.objects(tags__in=patternlist) 
     if len(resultList<1): 
      raise ObjectDoesNotExist 
     return 

    def title(self, obj): 
     return obj.title 

    def description(self,obj): 
     return obj.description 

    def items(self, obj): 
     return obj 

Мое мышление является то, что структура синдикации делает некоторые проверка бэкэнд перед подачей фида. Я также мог бы понять эту структуру неправильно. Любые советы будут высоко ценится. Благодаря!

+0

Вы хотите подключиться к [реальной БД] (http://mongoengine-odm.readthedocs.org/guide/connecting.html#connecting-to-mongodb)? –

+0

@PuffinGDI mongoDB работает на локальном хосте по умолчанию. Я могу делать всевозможные запросы на нем с помощью представлений или оболочки. –

+0

Попробуйте мой ответ. Надеюсь, это вам поможет :). –

ответ

0

Я думаю, может быть, он потерял больше настроек для подключения БД.

Укажите IP, имя пользователя и пароль для подключения.

Пример:

from mongoengine import register_connection 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.dummy', 
    } 
} 

LOCAL_DBS = { 
    'default':{ 
     'NAME': 'your_db_name', 
     'HOST': '127.0.0.1', 
     'PORT': '', 
     'USER': 'user_name', 
     'PASSWORD': 'password' 
    }, 
} 

MY_DB = LOCAL_DBS['default'] 
register_connection('default', MY_DB['NAME'], host=MY_DB['HOST'], 
        username=MY_DB['USER'], password=MY_DB['PASSWORD']) 
Смежные вопросы