django RelatedObjectDoesNotExist
django,RelatedObjectDoesNotExist
2025-03-13 21:27:18 时间
结论:
error:
RelatedObjectDoesNotExist
根据处理log,可查看处理源码【related_descriptors.py", line 421,in __get__】
File "D:\PycharmProjects\smsenv\lib\site-packages\django\db\models\fields\related_descriptors.py", line 421, in __get__
raise self.RelatedObjectDoesNotExist(
master.models.corporation.Corporation.supplier.RelatedObjectDoesNotExist: Corporation has no supplier.
原因 & 対策:
1,model:OneToOneField
parent:已登录(Corporation)
child:未登录 (supplier)
2,処理
corporation:Corporation = Corporation.objects.get(pk=1)
supplier = corporation.supplier # OneToOneField,supplier未登录时,出错
# 使用 supplier前,需要判定其是否存在
对策:
hasattr(corporation,'supplier')
hasattr ( obj, 'related child name' )
if not hasattr(corporation, 'supplier'):
raise SuspiciousOperation("仕入先見つかりません")
或者
if hasattr(corporation, 'supplier'):
#後続処理
pass
详细:
表关系参照:
class Corporation(BaseModel):
corporation_code = models.CharField(max_length=8, primary_key=True, verbose_name='法人コード')
・・・
class Supplier(BaseModel):
corporation = models.OneToOneField(Corporation, on_delete=models.CASCADE, primary_key=True, verbose_name='法人コード')
・・・
相关文章
- Django之文件上传
- Django的请求与响应
- Django学习笔记一初识Django
- django RelatedObjectDoesNotExist
- Python进阶32-Django forms组件
- Django的ORM操作-删除数据
- Django模板引擎中变量作为属性值调用
- Django 使用 django-redis 作为缓存的正确用法,别忽略缓存的使用原则
- Django的ORM操作-创建数据
- 在 Linux 服务器上使用 Nginx + Gunicorn 部署 Django 项目的正确姿势
- pycharm怎么配置django环境_pycharm环境搭建
- Django的ORM简介
- [博客搭建] 通过用户邮箱认证来介绍 django-allauth 的使用思路
- pycharm怎么运行django项目_django怎么用
- 使用 Django 的 admin 定制后台,丰富自己网站的后台管理系统
- Python进阶35-Django Auth组件
- pycharm运行环境配置_pycharm安装django
- Python进阶37-smtp及Django发邮件
- Django 中使用 ajax 请求的正确姿势
- Python项目部署-使用Nginx部署Django项目