Python 具有非必填字段的MongoAlchemy模型

Python 具有非必填字段的MongoAlchemy模型,python,mongodb,flask,pymongo,mongoalchemy,Python,Mongodb,Flask,Pymongo,Mongoalchemy,我得到了下面的模型,其中有些字段不是必需的。我试图向访问该字段的模型添加一个setter函数,但它表示该属性不存在。即使数据库中没有值,模型也有属性,对吗??!?这里很混乱 from app import app from flask.ext.mongoalchemy import MongoAlchemy from flask import Flask from bson.objectid import ObjectId app.config['MONGOALCHEMY_DATABASE']

我得到了下面的模型,其中有些字段不是必需的。我试图向访问该字段的模型添加一个setter函数,但它表示该属性不存在。即使数据库中没有值,模型也有属性,对吗??!?这里很混乱

from app import app
from flask.ext.mongoalchemy import MongoAlchemy
from flask import Flask
from bson.objectid import ObjectId

app.config['MONGOALCHEMY_DATABASE'] = 'test-db'
db = MongoAlchemy(app)


...other models...

class Collection(db.Document):
    title       = db.StringField()
    description = db.StringField(required=False)
    source_url  = db.StringField(required=False)

    product_ids = db.ListField(db.ObjectIdField(), required=False)

    @property
    def products(self):
        return session.query(Product).filter({"mongo_id": {in_: self.product_ids}})

    def add_product(self, product):
        pid = ObjectId(product.mongo_id)
        self.product_ids.append(pid)
        print self.product_ids
而错误

  File "/Users/me/Dropbox/development/test/venv/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/me/Dropbox/development/test/app/views.py", line 121, in collection_add_product
    collection.add_product(product)
  File "/Users/me/Dropbox/development/test/app/models.py", line 67, in add_product
    print self.product_ids
  File "/Users/me/Dropbox/development/test/venv/lib/python2.7/site-packages/mongoalchemy/fields/base.py", line 252, in __get__
    raise AttributeError(self._name)
AttributeError: product_ids

对不起,是的。当我发布这个的时候,我正在尝试很多事情。谢谢你接电话。更新。因为我在Mongo/Flask的旅程中走得很早,所以我将继续MongoAlchemy。在Mongo中使用ORM和模式似乎与我选择Mongo的原因背道而驰。MongoAlchemy还可以使用更多的文档。