2010-08-17 29 views
19

我正在为我们公司使用构建一个简单的短URL服务,ala bitly。我想使用mongodb来存储数据,但我需要一些简单的界面来添加/编辑较短的URL到较长的URL映射。Django admin和MongoDB,可能呢?

蒙戈文件将是非常简单的,像这样:

{ 
    shortUrlSlug: 'pbbs', 
    fullUrl: 'http://example.com/peanut/butter/and/bacon/sandwiches/' 
} 

是那里有什么是暴露了一个简单的“CRUD”管理界面MongoDB中,可以使用Django,在那里你可以整合指定模型?
基本上像django管理员,但不需要SQL数据库。

谢谢!

回答

11

我已经证实,Django的nonrel项目确实支持管理界面。我确实遇到了一个问题,即默认的SITE_ID被选为一个数字,这在MongoDB中不允许用作主键。我解决了这个设置:

SITE_ID =在我的settings.py

“4d421623b0207acdc500001d”

我通过外壳印刷第一现场值的标识集合中得到的数量。

我还没有广泛的测试过这个,但是确实为一个Poll对象注册了一个管理员并且看到它工作。

+2

这完全有效。只需启动mongo shell,执行“db.django_site.find()”,并使用结果中的ObjectId值作为settings.py中SITE_ID的值。 – 2011-09-21 13:51:20

+0

如果你不需要网站选项,从安装的应用程序中删除它也是这项工作 – c24b 2014-02-16 18:35:49

9

我使用了django-nonrel和mongodb-engine,它运行良好。 Django管理员也可以使用标准模型字段。但是如果你使用listfield和dictfield,你需要做一些黑客攻击。

-1

MongoDB中有很多行为和Django的管理是关系数据库如PostgreSQL

您可以创建Django管理与django-nonrel,但它不是最优化和好。我认为它可以为您的应用程序创建自定义管理员。

1

这是一个古老的问题,但如果今天有人碰到同样的问题,我认为他最好的选择是http://humongous.io。这是一个类似于mongoDB的django-admin界面。它知道如何猜测/处理关系,并像Django管理员那样工作。

0

对于MongoDB,Django Admin非常有可能。你看过Djongo项目吗?

Djongo是一个SQL到MongoDB查询编译器。它将每个SQL查询字符串转换为一个mongoDB查询文档。因此,

  • 所有Django模型和相关模块均按原样工作。
  • 使用Django Admin GUI添加MongoDB嵌入式文档。
  • Djongo为Django ORM提供API扩展,让您可以将一个文档嵌入到另一个文档中,例如MongoEngine。

如果您正在寻找更多信息,只需添加一行代码就可以找到关于Using Django with MongoDB的文章。否则,您可以直接跳到djongo documentation并开始使用它。