Django中def___str____(self)中的条件

Django中def___str____(self)中的条件,django,django-models,Django,Django Models,我有这个模型: class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile', null=True, blank=True) name = models.CharField(max_length=120, null=True, blank=True) 如您所见,user和name都可以为空。这是因为配置文件可能链接到用

我有这个模型:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile', null=True, blank=True)
    name = models.CharField(max_length=120, null=True, blank=True)
如您所见,
user
name
都可以为空。这是因为配置文件可能链接到用户或不链接到用户。如果不是,则只提供
名称
字段。如果配置文件未链接到用户,如何返回
name
,如果是,如何返回
user.name
属性?这:

    def __str__(self):
        return
        if self.user:
            f"{self.user}'s profile"
        else:
            self.name
返回一个
\uuuu str\uuuuuuu返回的非字符串(类型NoneType)
错误

解决方案

最后,我使用了@Max Malysh接受答案的稍加修改的版本:

def __str__(self):
        return f"{self.user}'s profile" if self.user_id != None else f"{self.name}"

def __str__(self):
    if self.user:
        return f"{self.user}'s profile"
    else:
        return f"{self.name}"
def __str__(self):
    return f"{self.user}'s profile" if self.user else f"{self.name}"