python - Django:非主外键对象无法访问相关模型实例
问题描述
我是 Django 的新手。我在 models.py 中有2 类tech_system和设备
class tech_system(models.Model):
id_tech_system = models.BigAutoField(db_column='ID_tech_system', primary_key=True)
system_descript_short = models.CharField(max_length=255, blank=True, null=True)
#More field here
tech_system_code = models.CharField(unique=True, max_length=40)
class Meta:
managed = False
db_table = 'tech_system'
def __str__(self):
return self.system_descript_short
class equiptment(models.Model):
id_thietbi = models.BigAutoField(db_column='ID_thietbi', primary_key=True)
tech_system_code = models.ForeignKey('tech_system', models.DO_NOTHING, db_column="tech_system_code", blank=True, null=True)
class Meta:
managed = False
db_table = 'equiptment'
我使用python shell,设备模型对象无法访问相关的tech_system模型实例。我得到错误匹配查询不存在。我想得到值obj1.equiptment.tech_system_code.system_descript_short。我能怎么做?
谢谢你。
>>> obj1 = equiptment.objects.first()
>>> obj1.tech_system_code_id
'530'
>>> obj1.tech_system_code
Traceback (most recent call last):
File "D:\Dev1\env1\lib\site-packages\django\db\models\fields\related_descriptors.py", line 173, in __get__
rel_obj = self.field.get_cached_value(instance)
File "D:\Dev1\env1\lib\site-packages\django\db\models\fields\mixins.py", line 15, in get_cached_value
return instance._state.fields_cache[cache_name]
KeyError: 'tech_system_code'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "D:\Dev1\env1\lib\site-packages\django\db\models\fields\related_descriptors.py", line 187, in __get__
rel_obj = self.get_object(instance)
File "D:\Dev1\env1\lib\site-packages\django\db\models\fields\related_descriptors.py", line 154, in get_object
return qs.get(self.field.get_reverse_related_filter(instance))
File "D:\Dev1\env1\lib\site-packages\django\db\models\query.py", line 437, in get
self.model._meta.object_name
app.models.tech_system.DoesNotExist: tech_system matching query does not exist.
解决方案
我发现 tech_system_code 记录被分配为 str 类型,而不是设备模型中的对象。导入数据库的记录值不正确。谢谢你的帮助。
推荐阅读
- r - 如何从一个数据帧中提取数据以在 r 中的另一个数据帧中使用
- r - 如何解决R中矩阵的dimnames错误
- python - 我可以从内联获取多个返回值吗?
- jenkins - 无法让 AWS CLI 命令在 Jenkins 脚本中运行
- python - 为什么在函数中使用 Tkinter 按钮时返回 None?
- amazon-web-services - 个人笔记本电脑上的中央日志?
- tableau-api - 如何在 Tableau 中显示构成整体的字段层次结构?
- java - 获取发布者
来自输入流 - node.js - 后端内部化更改语言会话与系统
- firebase - 可以将 img src 存储在 Cloud Firestore 中吗?