繁体   English   中英

Django 抽象模型没有按预期工作

[英]Django abstract model not working as expected

我有一个抽象的 Django 模型和一个基本模型。 我期望基本模型的任何实例都具有字段 created_at 或 updated_at 的值。 但是,截至目前,我所有的实例都没有这两个字段。 我究竟做错了什么?

from django.db import models


class Trackable(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True


class Quotation(Trackable):
    reference = models.CharField(null=True, max_length=80)


quotation = Quotation(id=1)
print(quotation.created_at)
>>> None

这些字段的计算结果为None ,因为抽象模型中的这些字段仅在对象保存在数据库中时才被填充。 当你只实例化你的模型时,它不会接触数据库,所以它们的值为 None ,除非你调用save()方法。

尝试:

quotation = Quotation(id=1)
quotation.save()
print(quotation.created_at)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM