我想在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
。有谁知道我怎么解决这个问题?
答案 0 :(得分:1)
如果要将随机字符串设置为django对象的ID,则应使用UUIDField
来自文档:
用于存储通用唯一标识符的字段。使用Python的UUID类。在PostgreSQL上使用时,它以uuid数据类型存储,否则存储在char(32)中。