5

我试图将 MongoDB 与 Django 一起使用。我已按照本指南进行设置,以便安装所有必要的东西。 MongoDB + Django 教程 我的问题如下: 尝试cities = City.objects.get()在我views.py的中运行时出现以下错误:

DoesNotExist at /GetAllCities/
        City matching query does not exist.

我的 MongoDB 看起来像这样

Databasename = "exjobb"
Collectioname = "cities"`

它包含 30,000 行数据,适用于我的 Rails 和 PHP 应用程序。

我的模型类看起来像这样

    from django.db import models
    from django.core.urlresolvers import reverse
    from djangotoolbox.fields import ListField, EmbeddedModelField

    # Create your models here.
    class City(models.Model):
        city = models.TextField()
        loc = models.TextField()
        population = models.IntegerField()
        state = models.TextField()
        _id = models.IntegerField()

        def __unicode__(self):
            return self.city

数据库中的一行看起来像这样

{
     "city" : "ACMAR",
     "loc" : [
        -86.51557,
        33.584132
     ],
     "population" : 6055,
     "state" : "AL",
     "_id" : "35004"
}
4

2 回答 2

7

我找到了解决方案。问题是我不知道如何选择要使用的集合。因此 Django 创建了一个名为“myAppName_cities”的新集合。

要告诉 django 使用哪个集合,只需添加一个像这样的元类。

class City(models.Model):
    city = models.TextField()
    loc = models.TextField()
    population = models.IntegerField()
    state = models.TextField()
        #Specify collection in the MongoMetaclass
    class MongoMeta:
        db_table = "cities"
于 2013-04-24T17:57:23.507 回答
0

如果您想获得数据库中的所有城市,您应该使用

cities = City.objects.all()

City.objects.get需要一个关键字参数来搜索,并且只返回一条记录。如果发现多个异常,则引发异常。

于 2013-04-22T19:19:36.837 回答