Python (Django):“self.text”不可订阅

我正在按照“Django初学者”一书学习Django,有一个奇怪的问题。下面的代码片段实际上有效,但 Pylint 不断向我显示错误,而且我知道错误发生了。但作者却没有采取任何行动。请问有人知道为什么吗?代码片段来自我的应用程序文件夹的 models.py。


from django.db import models


# Create your models here.

class Post(models.Model):

    text = models.TextField()


    def __str__(self):

        return self.text[:50]

我的 vscode 编辑器中的 pylint 错误消息是 - Value 'self.text' is unsubscriptable


我的环境:Win 10、Python 3.6、Django 3.0.1


qq_遁去的一_1
浏览 141回答 0
0回答

DIEA

下面的代码片段实际上有效,但 Pylint 一直向我显示错误。请问有人知道为什么吗?是的,因为 Pylint 不“理解”模型和字段的元类中实现的逻辑。因此它认为self.text将返回该TextField对象,该对象确实不可下标。然而,元类将“注入”一个字符串self.text。有一个pylint-django包 [pypi]可以更好地理解 Django 的工作原理,尽管它仍然是“有限的”。它列出的功能之一是:修复 pylint 对模型和表单字段属性类型的了解。所以通常它会解决这个问题。例如,尽管对于自定义模型字段,它可能仍然会失败。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python