You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中无法通过_meta类访问模型字段的on_delete参数

解决Django OneToOneField无法访问on_delete属性的问题

问题分析

你定义的OrgLocation模型中,org字段是OneToOneField,通过_meta.get_field("org")获取字段对象后直接访问.on_delete会触发AttributeError,但primary_key、blank等属性可正常访问。这是因为关系型字段(如OneToOneField、ForeignKey)的关联配置属性(包括on_delete)并不直接存储在字段对象本身,而是存储在其关联的remote_field对象中。

解决方案

修改代码,通过字段的remote_field属性访问on_delete:

OrgLocation._meta.get_field("org").remote_field.on_delete

补充说明

  • 若使用Django 1.x版本,需用.rel替代.remote_field:
    OrgLocation._meta.get_field("org").rel.on_delete
    
  • primary_key、blank属于字段本身的通用属性,因此可直接从字段对象访问;而on_delete是关联关系的配置项,需从关联对象中获取。

内容的提问来源于stack exchange,提问作者kureal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:05:01