我想向我创建的每个模型中添加一个'is_active'布尔值,created_datetime和created_by字段。有没有办法让我的移民来处理呢?基本上是添加到ID字段的现有添加项中。
答案 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):
# …