我正在使用MongoDB和Flask。在我的模型中,我有以下内容:
class Post(db.Document):
types = db.StringField(max_length=255, required=True, default="Feature")
geometry = db.ListField(db.EmbeddedDocumentField('Geometry'))
properties = db.ListField(db.EmbeddedDocumentField('Properties'))
class Geometry(db.EmbeddedDocument):
types = db.StringField(default="Point",required=True)
coordinates = db.ListField(db.EmbeddedDocumentField('Coordinates'))
class Coordinates(db.EmbeddedDocument):
longitude = db.StringField(max_length=255)
latitude = db.StringField(max_length=255)
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.objects.get_or_404(title=title)
从课程帖子中检索所有内容。
我的问题是:有没有人知道如何检索listfield属性并获取url的值?
我需要这个,因为我正在尝试重新填充表单,以便当用户按下“编辑”时,它将显示用户之前在表单中添加的内容的详细信息。
当我尝试:
Properties.objects.get_or_404(url=url)
它给了我AttributeError: type object 'Properties' has no attribute 'objects'
。
答案 0 :(得分:0)
您使用了EmbeddedDocument
,因此它只是Post
模型的路径而EmbeddedDocument
没有object
属性,因为它只是Document
的路径{{{ 1}}。
要查找DictField
,其中Post
使用下一个代码:
properties.url == url
但是您将获得Post.objects.get_or_404(title=title, properties__url=url)
实体,并且必须手动找到特定属性。例如:
Post