python - 为什么我收到 pylint 错误:值“self.body”不可订阅?
问题描述
我正在尝试获取从正文返回前 50 个字符的摘要方法。
class Blog(models.Model):
# Title for the Blog
title = models.CharField(max_length=255)
# Blog body
body = models.TextField()
def __str__(self):
return self.title
def summary(self):
return self.body[:50] # I get the error here
解决方案
您的 linter 感到困惑,因为它期望是不支持下标的self.body
实例。models.TextField
然而,Django 的 ORM 实际上会self.body
用一个支持下标的字符串替换。Django 用元类做了相当多的魔术来提供这个接口,不幸的是,linter 通常不够聪明,无法检测到这一点。
推荐阅读
- swift - Swift - 指定符合泛型类型参数的协议
- javascript - 是否可以在 html 的反应中创建目录
- javascript - innerText 不保留换行符
- python - 使用 Python mixin 覆盖基类方法时,“基类的属性值有冲突”
- mysql - mariadb json对象数组过滤属性条件
- javascript - 为什么不直接使用共享导入而不是 React.createContext?
- r - ggplot guide_legend 参数将连续图例更改为离散图例
- asp.net-mvc - ASP 核心身份声明 - 已过期的声明
- android - ListView 适配器总是删除最后一行
- react-native - React Native / Expo - 自定义字体不起作用