Я пытаюсь создать настраиваемый сгенерированный 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
Мое мышление является то, что структура синдикации делает некоторые проверка бэкэнд перед подачей фида. Я также мог бы понять эту структуру неправильно. Любые советы будут высоко ценится. Благодаря!
Вы хотите подключиться к [реальной БД] (http://mongoengine-odm.readthedocs.org/guide/connecting.html#connecting-to-mongodb)? –
@PuffinGDI mongoDB работает на локальном хосте по умолчанию. Я могу делать всевозможные запросы на нем с помощью представлений или оболочки. –
Попробуйте мой ответ. Надеюсь, это вам поможет :). –