如何解决文本类型提示:检查检测应该解析但不解析的名称
在“图像”应用程序的目录中,我组织了 model_utils。 model_utils 中函数的最简单情况是查找上传目录:
├── images
│ ├── models.py
│ ├── model_utils.py
│ ├── tests.py
│ └── views.py
该类型有多种功能。这就是为什么我将它们全部移动到一个单独的包 model_utils.py 中。
问题是我在 PyCharm 中有两个警告:“Unresolved reference 'images'”。
def raster_img_upload_to(instance: Union["images.models.RasterImage","images.models.ResponsiveImage"],file_name: str) -> str:
responsive_image_cls = apps.get_model("images.ResponsiveImage")
raster_image_cls = apps.get_model("images.RasterImage")
# //@formatter:off
# Assertions {
assert isinstance(instance,(responsive_image_cls,raster_image_cls))
# } Assertions
# //@formatter:on
if isinstance(instance,responsive_image_cls):
an_id = instance.raster_image.id
else:
an_id = instance.id
result = get_image_upload_to(an_id=an_id,file_name=file_name,img_dir=general.ImgDirs.RASTER)
# //@formatter:off
# Assertions {
assert isinstance(result,str)
# } Assertions
# //@formatter:on
return result
正确检测类型提示错误对我来说是一个关键点。这就是为什么我不能忽略它。
IDE 的消息:
Unresolved reference 'images'
Inspection info: This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing,this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.
IDE 建议的一种方法是导入这些模型。这对我来说似乎很奇怪:我决定使用文本类型提示来避免循环导入。
至于将这些实用程序移回模型模块,我很不情愿。因为那里有几个功能。对我来说,将它们放在一个单独的模块中更合乎逻辑,也更清晰。但如果不可避免,我会将它们移回models.py。
你能在这里给我建议任何解决方案吗?
使用:
Django 3.1.7 Pycharm 社区 2020.3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。