如何在Django中使数据库字段不可更改?

时间:2014-09-01 13:36:17

标签: python database django orm

假设我有CarsCarTypes和他们BuildDates这样:

class Car(db.models):
    licence_name = models.CharField(max_length=64)
    car_type = models.ForeignKey(Type)

class Type(db.models):
    name = models.CharField(max_length=64)
    build_during = models.ForeignKey(BuildDate)   

class BuildDate(db.models):
    begin = models.DateField(null=True)
    end = models.DateField(null=True)

    class Meta(object):
        unique_together = (('begin', 'end'),)

我希望将BuildDates放在一个单独的表中,这样我可以使用Django外部工具进行更快速的查询和其他工作。

由于BuildDates是唯一的,但在CarTypes之间共享,我想确保这一点:如果一个BuildDate d0 CarType t1 }已更改,其他CarTypes不受影响且仍然共享相同的BuildDate d0 - 但不会与t1共享d1现在有BuildDate。我认为有必要为d1 CarType创建新的t1 {{1}}。是否有推荐或推荐的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

使用“可编辑”属性。当您设置“False”时,元素将不会显示在管理员中,也就是说,您无法更改其值。

<强> e.g。

licence_name = models.CharField(max_length = 64,editable = False)