2012-09-12 122 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