【问题标题】:model_to_dict() with a @property field is not being included不包括带有 @property 字段的 model_to_dict()
【发布时间】:2020-06-23 21:58:36
【问题描述】:

我正在尝试在 model_to_dict fields 列表中包含一个 property 字段。

class Person(models.Model):
    thumbnail = models.ImageField(upload_to='bla...')

    ...snipped...

    @property
    def thumbnail_url(self):
        return self.thumbnail.url

    def toJSON(self):
        return model_to_dict(self, fields=[..., 'thumbnail_url',...])

当我调用 Person.toJSON() 时,它确实包含 thumbnail_url 字段。

怎么了?

谢谢。

【问题讨论】:

  • 属性不是字段,因此不会包含在内。
  • 嗯。 stackoverflow.com/a/57303346/11576212这个人说它解决了他的问题。提供的属性不起作用获取 url 的解决方法是什么?

标签: python django django-models


【解决方案1】:

这是我目前的修复。我对另一种与model_to_dict() 更有效的方法持开放态度@

@property
def thumbnail_url(self):
    return self.thumbnail.url

def toJSON(self):
    return {
        **model_to_dict(self, fields=['all', 'my', 'fields']),
        **{'thumbnail_url': self.thumbnail_url }
          }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 2012-04-23
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多