将随机字符串设置为id

时间:2016-03-24 02:50:11

标签: python django

我想在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。有谁知道我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

来自文档:

  

用于存储通用唯一标识符的字段。使用Python的UUID类。在PostgreSQL上使用时,它以uuid数据类型存储,否则存储在char(32)中。