【发布时间】:2018-03-10 02:25:04
【问题描述】:
我需要将 slug 字段添加到 django 模型,我认为它不为空时会更好。所以我正在尝试将 slug 添加到模型中
slug = models.SlugField(
'URL',
unique=True,
default=id_generator,
)
我的 id_generator:
import string
import random
def id_generator():
size=16
chars=string.ascii_lowercase + string.digits
return ''.join(random.choice(chars) for x in range(size))
问题是当我迁移更改时。 方法 id_generator 被调用一次,并为所有模型对象使用相同的值。所以我在独特的领域有重复的条目。我怎样才能产生独特的价值? Django 1.11.5
附:我了解,我可以设置 null=True 并自定义模型的保存方法以在保存时添加 slug。
【问题讨论】:
-
旁注,当然还有一个极端情况:即使每个实例都调用它,您的 id_generator 中也没有任何东西可以保证唯一性。
标签: python django django-models django-1.11