2012-09-12 89 views
1

我试过这个例子:http://mongoengine-odm.readthedocs.org/en/latest/tutorial.html?highlight=query%20document%20inheritance#posts 但不适合我。mongoengine继承django

我想存储从天气API数据: http://api.met.no/weatherapi/locationforecast/1.8/?lat=46.079001;lon=14.51860012

,所以我有这样

import mongoengine 

class Weather(mongoengine.Document): 
    created = mongoengine.DateTimeField 
    latitude = mongoengine.DecimalField 
    longitude = mongoengine.DecimalField 
    model_name = mongoengine.StringField 

class Precipitation(Weather): 
    dateFrom = mongoengine.DateTimeField(required=True) 
    dateTo = mongoengine.DateTimeField(required=True) 
    precipitation = mongoengine.DecimalField 
    symbol = mongoengine.IntField(min_value=1, max_value=23) 

class State(Weather): 
    temperature = mongoengine.DecimalField 
    windDirection = mongoengine.StringField 
    windAngle = mongoengine.DecimalField 

models.py试图保存的数据。例如: models.State.objects.create(温度= 17)

没有保存!

我知道我缺少构造函数在字段定义中的参数,但我真的不知道如何实现它。

回答

3

您需要的类实例,例如:

import mongoengine 

class Weather(mongoengine.Document): 
    created = mongoengine.DateTimeField() 
    latitude = mongoengine.DecimalField() 
    longitude = mongoengine.DecimalField() 
    model_name = mongoengine.StringField() 

class Precipitation(Weather): 
    dateFrom = mongoengine.DateTimeField(required=True) 
    dateTo = mongoengine.DateTimeField(required=True) 
    precipitation = mongoengine.DecimalField 
    symbol = mongoengine.IntField(min_value=1, max_value=23) 

class State(Weather): 
    temperature = mongoengine.DecimalField() 
    windDirection = mongoengine.StringField() 
    windAngle = mongoengine.DecimalField() 
+1

我的天啊!我正在观看2天的代码,无法获得这些小的差异xD – Crystal