python - Python(Django):'self.text'不可订阅
问题描述
我正在按照“初学者的Django”一书学习Django,有一个奇怪的问题。下面的代码片段确实有效,但 Pylint 一直向我显示错误,我知道错误发生了。但作者对此无动于衷。请问有人知道为什么吗?代码片段来自我的 app 文件夹的 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
解决方案
下面的代码片段确实有效,但 Pylint 不断向我显示错误。请问有人知道为什么吗?
是的,因为 Pylint 不“理解”在模型和字段的元类中实现的逻辑。因此,它认为这self.text
将返回TextField
对象,该对象确实不可下标。然而,元类将为self.text
.
有一个pylint-django
包 [pypi]可以更好地理解 Django 的工作原理,尽管它仍然是“有限的”。作为它列出的功能之一:
- 修复 pylint 对 Model 和 Form 字段属性类型的了解。
所以通常它会解决这个问题。尽管对于例如自定义模型字段,它可能仍然会失败。
推荐阅读
- javascript - 如何根据 Angular 中的 .CSV 文件行创建多个数组?
- c - STM32 中 PWM 的预分频器和周期值
- java - 无法访问 Spark 集群管理器以请求执行程序
- jvm - double 值是如何存储在 JVM 中的,JVM 是如何从内存中读出其对应的二进制值并将其转换为十进制值的?
- python - 名称“赢家”未定义
- amazon-web-services - AWS AppSync 是否有限制定义?
- python - 切片数据帧捕获错误“TypeError:元组索引必须是整数或切片,而不是 str”
- angular - Angular/Ionic 应用程序 - 尽管服务器端设置正确,但 CORS 问题
- corda - 当在 corda 中使用帐户和 oracle 时,谓词返回 false
- python - 构建自定义 keras 层,我遇到 InvalidArgumentError: Input 'pred' pass float expected bool while building