1

この例を試してみました: http://mongoengine-odm.readthedocs.org/en/latest/tutorial.html?highlight=query%20document%20inheritance#posts しかし、私のために働いていません。

Weather API からデータを保存したい: http://api.met.no/weatherapi/locationforecast/1.8/?lat=46.079001;lon=14.51860012

だから私はこのようなmodels.pyを持っています

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.State.objects.create(temperature=17)

何も保存されません!

フィールド定義でコンストラクターへの引数が欠落していることは知っていますが、それを実装する方法が本当にわかりません。

4

1 に答える 1

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()
于 2012-09-12T08:32:07.313 に答える