【发布时间】:2019-03-13 19:06:12
【问题描述】:
我想让 UUID 字段在 Django 中不可编辑,我使用 uuid 作为静态文件的名称,如果相应的 UUID 更改,则会失去其完整性。我试图将 UUID 设置为只读(在 shell 上,不关心表单和管理员),这样一旦定义,模型的 uuid 就永远不会改变。
class Car(models.Model):
uuid = muuid = models.UUIDField(default=uuid.uuid4, editable=False)
所以当我尝试更改 shell 中的 uuid 时
>>> x = Car.objects.first()
>>> x.uuid
UUID('acd963cf-aa2f-4f44-988d-87091d492766')
>>> x.uuid = uuid.uuid4
>>> x.save()
>>> x.uuid
UUID('1155ce6d-d783-4dc8-a970-a004dc63f3d8')
Django 版本是 2.1.7,数据库是 PostgreSQL 10
【问题讨论】:
标签: python django python-3.x django-models