【问题标题】:how to add property for ListField on mongoengine如何在 mongoengine 上为 ListField 添加属性
【发布时间】:2012-08-25 10:46:47
【问题描述】:

我使用 mongoengine,非常喜欢它。
现在我用 django 工作,但我遇到了问题 如何为 ListField 设置属性
例如 这是我的模型

class Bussiness(Document):
    tags = ListField(StringField())

我想在这样的模板上使用它:

{% for tag on bussiness.tags %}
    {{ tag.url }}
{% endfor %}

但是tag.url我不想将它保存到数据库中,只是希望在模型级别生成它,并且只在数据库中制作一些字符串。
如果我在模板上硬编码,我必须到处写,那是我厌恶的。

【问题讨论】:

    标签: django mongoengine


    【解决方案1】:

    这不起作用,因为标签只是一个字符串(您将它定义为StringField)。

    您可以将标签作为嵌入文档,其中 url 是一个属性,例如:

    class Tag(EmbeddedDocument):
        name = StringField()
    
        @property
        def url(self):
            return "http://my-ace-site.come/businesses/%s/"
    
    class Business(Document):
        tags = ListField(StringField())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 2014-10-04
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多