gpt4 book ai didi

python - 从函数和前缀字符串在 Django 中创建默认 ID

转载 作者:太空狗 更新时间:2023-10-30 00:49:20 24 4
gpt4 key购买 nike

我需要做的是运行一个函数并在该函数返回的结果的开头附加一个前缀。每次为我的模型创建新实例时都需要这样做。

我试过的....

以下将不起作用,因为您不能将字符串添加到函数并将 ID 设置为 s_<function name etc>而不是函数的结果。

APP_PREFIX = "_s"
id = models.CharField(primary_key=True, max_length=50, unique=True,
default="{}{}".format(APP_PREFIX, make_id))

也不会将前缀传递给函数,因为 Django 每次以这种方式调用函数时都会生成相同的键,不知道为什么:

id = models.CharField(primary_key=True, max_length=50, unique=True,
default=make_id(APP_PREFIX))

这也行不通:

id = models.CharField(primary_key=True, max_length=50, unique=True,
default=make_id + APP_PREFIX)

或者这个:

id = models.CharField(primary_key=True, max_length=50, unique=True,
default=make_id() + APP_PREFIX)

如何实现?

我可以覆盖 save()方法并实现这一点,但必须有一种方法可以使用字段上的默认参数来做到这一点!

最佳答案

我找到了一种在我的模型上实现这一目标的方法:

PREFIX = settings.PREFIXES['THIS']
def get_id():
return make_id(PREFIX)

class MyModel(models.Model):
id = models.CharField(primary_key=True,unique=True,
default=get_id,)

关于python - 从函数和前缀字符串在 Django 中创建默认 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com