我正在使用mongodb和烧瓶。 我有以下型号:
class Post(db.Document):
properties = db.ListField(db.EmbeddedDocumentField('Properties'))
class Properties(db.EmbeddedDocument):
title = db.StringField(max_length=255, required=True)
types = db.StringField(max_length=255, required=True)
location_name = db.StringField(max_length=255, required=True)
url = db.StringField(max_length=255, required=True)
feed_url = db.StringField(max_length=255, required=True)
content_url = db.StringField(max_length=255, required=True)
date_added = db.StringField(max_length=255, required=True)
date_crawled = db.StringField(max_length=255, required=True)
当我Post.properties
时,我会返回一个列表字段。
我想知道是否有人知道如何访问属性类中的url属性。
我希望得到properties.url等于的列表域,例如“abc”
我尝试了Post.properties.url
并收到以下错误
AttributeError: 'ListField' object has no attribute 'url'
非常感谢
答案 0 :(得分:1)
Post.properties
有ListField
类型。因此,Post
实例properties
具有list
类型。
首先,您必须获得Post
实例(不是类):
post_1 = Post.objects.first() # get first from database
post_2 = Post().save() # create and save
使用Post
实例,您可以通过索引获得标准:
post = Post.objects.first()
print post.properties[0].url if post.properties else None
但最好迭代属性:
post = Post.objects.first()
for property in post.properties:
print property.url