Django UUID 字段不会自动创建新条目
Django UUID Field does not autocreate with new entry
我刚刚添加了一个新模型,我想在其中首次使用 UUID。
我 运行 Django 3.1.3 在 python 3.8.10.
发现了一些关于此的问题,我很确定我是根据这些建议做的。但是,当我向该模型添加一个条目时(在 phpmyadmin web-surface 中),UUID 没有被添加,它只是保持为空。但是,当我创建另一个时,出现错误,UUID 字段不允许与其他地方相同(均为空),这意味着至少 unique=True 确实有效。
另一件要提及的事情是,当我使用 VSCode 创建字段时,通常这些字段名会自动完成,但这个字段不是这样。我想这可能会给您一些提示。
我的模型是这样的:
from django.db import models
import uuid
class MQTTTable(models.Model):
uuid = models.UUIDField(primary_key = True, default = uuid.uuid4, editable = False, unique = True)
description = models.CharField(max_length= 100, default = None)
clientID = models.CharField(max_length = 50, default = None)
mastertopic = models.CharField(max_length = 200, default = None)
将default = uuid.uuid4
更改为default = uuid.uuid4()
default = uuid.uuid4
是 Django ORM 默认值,它不是数据库会为您做的事情,就像 ID
的自动递增一样。所以如果你通过 phpmyadmin 添加一个条目,它不会设置 uuid 字段。
我刚刚添加了一个新模型,我想在其中首次使用 UUID。 我 运行 Django 3.1.3 在 python 3.8.10.
发现了一些关于此的问题,我很确定我是根据这些建议做的。但是,当我向该模型添加一个条目时(在 phpmyadmin web-surface 中),UUID 没有被添加,它只是保持为空。但是,当我创建另一个时,出现错误,UUID 字段不允许与其他地方相同(均为空),这意味着至少 unique=True 确实有效。
另一件要提及的事情是,当我使用 VSCode 创建字段时,通常这些字段名会自动完成,但这个字段不是这样。我想这可能会给您一些提示。
我的模型是这样的:
from django.db import models
import uuid
class MQTTTable(models.Model):
uuid = models.UUIDField(primary_key = True, default = uuid.uuid4, editable = False, unique = True)
description = models.CharField(max_length= 100, default = None)
clientID = models.CharField(max_length = 50, default = None)
mastertopic = models.CharField(max_length = 200, default = None)
将default = uuid.uuid4
更改为default = uuid.uuid4()
default = uuid.uuid4
是 Django ORM 默认值,它不是数据库会为您做的事情,就像 ID
的自动递增一样。所以如果你通过 phpmyadmin 添加一个条目,它不会设置 uuid 字段。