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

Django中如何让get_attname()返回包含字段必填属性的列表?

你可以通过判断Django模型字段的blank属性实现需求,参考代码如下:

[(field.get_attname(), 'required' if not field.blank else 'optional') for field in Model._meta.fields]

规则说明

  • 模型字段的blank属性默认值为False,对应字段为必填项;如果字段定义时显式设置了blank=True,则为选填项,和你需要的外键必填的判断逻辑完全匹配。
  • 如果你需要对齐数据库层面的非空规则而非表单提交层面的必填规则,把判断条件替换为not field.null即可。
  • 外键字段调用get_attname()会返回带_id后缀的属性名,如果你需要保留原始字段名,替换为field.name即可。
  • 如果你需要过滤掉自增主键这类系统自动赋值的字段,可以添加auto_created判断,示例如下:
[(field.get_attname(), 'required' if not field.blank else 'optional') 
 for field in Model._meta.fields 
 if not field.auto_created]

内容的提问来源于stack exchange,提问作者Prosy A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:15:04