Django - 模型字段和模型属性之间有什么区别?

时间:2015-10-27 22:28:28

标签: django django-models

在此链接中(对于ReadOnlyField):http://www.django-rest-framework.org/api-guide/fields/#readonlyfield它表示“当包含与属性而非模型字段相关的字段名称时,默认情况下此字段与ModelSerializer一起使用”。话虽如此,你能给我一个模型字段名称的例子,它是一个“属性”,一个模型字段名称是一个“字段”吗?

2 个答案:

答案 0 :(得分:16)

Django中,model field与数据库中的列有关。另一方面,model attribute与添加到model的方法或属性有关。

实施例

class MyModel(models.Model):
    name = models.CharField()
    quantity = models.IntegerField()
    price = models.DecimalField()

    @property
    def description(self):
        return '{}x of {}'.format(quantity, name)

    def compute_total(self):
        return quantity * price

在上面的示例中,namequantitypricemodel fields,因为它们是数据库中的列。同时,descriptioncompute_totalmodel attributes

答案 1 :(得分:0)

字段完全处理django的ORM,属性是常规类变量,用于保存类的特定实例的状态。