【问题标题】:Using the django syndication module with mongoengine将 django 联合模块与 mongoengine 一起使用
【发布时间】:2014-01-23 03:47:04
【问题描述】:

我正在尝试使用 django 内置的 Syndication Framework 构建自定义生成的 RSS 提要。我正在使用 mongoengine 将 django 与 mongoDB 接口。

我正在存储一组文档,每个文档都有一个标签列表。建模如下:

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

理想情况下,我想做的是让用户输入一系列标签并获取带有该标签的最近文档列表的 rss 提要。前任。 .../subscribe/One/Two 会提取带有“一”和“二”标签的提要。

我已经映射了我的 urls.py 文件来匹配这个:

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

但我一直收到错误提示

settings.DATABASES 配置不正确。请提供 ENGINE 值。查看设置文档了解更多详情。

由于我使用的是 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

我的想法是联合框架在提供提要之前会进行一些后端验证。我也可能错误地理解了这个框架。任何建议将不胜感激。谢谢!

【问题讨论】:

  • 你想连接到real DB吗?
  • @PuffinGDI mongoDB 在默认端口的 localhost 上运行。我可以使用视图或 shell 对其进行各种查询。
  • 试试我的答案。我希望它可以帮助你:)。

标签: python django mongodb rss mongoengine


【解决方案1】:

我认为连接数据库可能丢失了更多配置。

提供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'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2021-04-08
    相关资源
    最近更新 更多