如何在Django模型字段中设置默认数据?

时间:2020-05-16 17:16:44

标签: django django-models

我想向我创建的每个模型中添加一个'is_active'布尔值,created_datetime和created_by字段。有没有办法让我的移民来处理呢?基本上是添加到ID字段的现有添加项中。

2 个答案:

答案 0 :(得分:1)

您可以为每个模型或抽象基础模型都具有以下字段,以从中继承这些字段:

is_active = BooleanField(default=True)
created_datetime = DateTimeField(auto_now_add=True)
created_by = ForeignKey(User, related_name='created_by', on_delete=models.CASCADE)

答案 1 :(得分:1)

可能最简单的方法是定义abstract base model [Django-doc]

from django.conf import settings
from django.db import models

class BaseModel(models.Model):
    is_active = models.BooleanField(default=True)
    created_timestamp = models.DateTimeFIeld(auto_now_add=True)
    created_by = models.Foreignkey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        editable=False
    )

    class Meta:
        abstract = True

接下来,您可以在所有模型中继承此抽象基础模型:

class MyModel(BaseModel):
    # …