gpt4 book ai didi

python - Django 返回属性 if not null else 返回方法结果

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:08 25 4
gpt4 key购买 nike

我试图使用方法装饰器创建一个动态属性,我遇到的问题是如果用户没有保存他/她自己的字段,我想使用这个字段。例如:

class Person(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)

def __str__(self):
return self.name

@property
def name(self):
return self.name if self.name else "John"

基本上,如果我在名称字段中找不到任何内容,我想返回“John”。但是,这样做时,Django 会提示,因为 self.name 正在查看名称函数而不是实际属性。

调用 Python 对象时超出最大递归深度

有没有一种方法可以引用不动产或者可能有其他方法来实现这一点?

最佳答案

一个简单的方法是重命名您的访问器方法/属性:

class Person(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)

def __str__(self):
return self.name

def get_name(self):
return self.name if self.name else "John"

然后当你有一个实例时:

person.get_name()

关于python - Django 返回属性 if not null else 返回方法结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872342/

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