如何访问模型类定义中的Django模型属性?

2024-09-27 22:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码的问题是,当我试图访问self.username时,我得到一个

NameError: 'self' is not defined

username属性继承自Django的AbstractUser。你知道吗

我在google上搜索了一下,发现我需要创建一个init方法才能使自变量存在。问题是我不想在init中做任何事情,因为我的Django代码的其余部分已经处理了实例化,而我的应用程序正在按原样工作。我试着用“pass”创建一个init方法,但这也给了我同样的错误。你知道吗

有没有什么方法可以访问我的属性而不必认真更改模型或进行新的迁移?我正在Windows10操作系统上使用Django2.0。你知道吗

Problematic code


Tags: django实例方法代码self属性initis
2条回答

只需避免upload\u to上的字符串路径连接,并将方法移出类

def profile_pic_path(instance, filename):
    return 'users/{0}/{1}'.format(instance.username, filename)

class Profile(models.Model):
    #other fields
    profile_picture = models.FileField(upload_to=profile_pic_path)

您可以在upload_to参数中使用一个callable来models.Imagefield。参见documentation。你知道吗

def get_upload_path(instance, _):
    return 'users/' + instance.username + '/'
class Profile(AbstractUser):
    profile_picture = models.ImageField(upload_to=get_upload_path, blank=True)

相关问题 更多 >

    热门问题