別のモデルへの ObjectIdField を含むモデルがある場合、通常は (django) を使用しproperty
てゲッターを作成し、参照は使用時に透過的になります。そのようです:
class Image(db.Document):
name_full = db.StringField(required=True)
name_thumb = db.StringField(required=False)
source = db.StringField(required=False)
class Product(db.Document):
name = db.StringField()
description = db.StringField(required=False)
image_id = db.ObjectIdField(required=False)
def _get_image(self):
try:
return db.query(Image).filter(mongo_id=self.image_id)[0]
except IndexError:
return None
image = property(_get_image)
ただし、実際には、テンプレートからアクセスしようとすると、次のエラーが発生します。
<img src="{{ url_for('static', filename='images/products/'+product.image.name_thumb) }}">
UndefinedError: 'app.models.Product object' has no attribute 'image'
私はこれを正しい方法で行っていますか?