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 字段。