创建个人档案模型时出现以下错误
“ OneToOneField”的实例没有“用户名”成员
这是我创建的代码的片段
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default="default.jpg", upload_to="profile_pics")
def __str__(self):
return f"{self.user.username} Profile"
以前运行正常。现在,突然我收到了这个错误,我不明白这个错误的含义。我该如何解决? 谢谢
答案 0 :(得分:1)
为了使pylint与Django一起正常工作,您应该安装pylint-django
软件包:
pip install pylint-django
然后您可以将pylint
作为插件运行pylint_django
:
pylint --load-plugins pylint_django <path_to_django_file>
如果您将VSCode用作IDE,则可以将此代码段添加到.vscode/settings.json
文件中,以为您的项目加载插件:
{
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_django"
]
}
或者,如果您有.pylintrc
文件,则可以添加以下行以加载插件:
[MASTER]
load-plugins=pylint_django
答案 1 :(得分:0)
除了Pumi的答案,当您通过pip安装pylint-django时,您可能还会出现另一个错误: “错误:无法卸载'wrapt'。这是一个distutils安装的项目,因此我们无法准确确定属于该文件的文件,这只会导致部分卸载。”
然后您必须输入以下内容:
pip install wrapt --upgrade --ignore-installed
然后重试pip install pylint-django
如果您使用的是conda解释器,则.vscode/settings.json
内还有一个现有的{"python.pythonPath": "./anaconda3/bin/python"}
。因此,您只需要添加列表,而无需使用@Pumi指定的其他花括号。因此,您将得到以下内容:
{
"python.pythonPath": "./anaconda3/bin/python",
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_django"
]
}
那你很好。