将随机字符串设置为id

2024-09-27 21:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在django中设置一个随机字符串作为ID。这是我目前的情况:

def pkgen():
    from django.utils.crypto import get_random_string
    pk = get_random_string(length=10, allowed_chars=u'abcdefghijklmnopqrstuvwxyz0123456789')
    return pk

class Note(models.Model):
    noteID = models.CharField(max_length=10, primary_key=True, default=pkgen)
    note = models.TextField()

问题是,在我没有输入pkgen之前,我只输入ID,所以当我转到我的管理页面获取注释时,它只会说

TypeError: id() takes exactly one argument (0 given)

将其更改为pkgen并重新进行迁移只会使其崩溃并给出上面的TypeError。有人知道我怎么解决这个问题吗?你知道吗


Tags: django字符串fromidgetstringmodelsdef
1条回答
网友
1楼 · 发布于 2024-09-27 21:34:47

如果要将随机字符串设置为django对象的id,应该使用UUIDField

根据文件:

A field for storing universally unique identifiers. Uses Python’s UUID class. When used on PostgreSQL, this stores in a uuid datatype, otherwise in a char(32).

相关问题 更多 >

    热门问题