繁体   English   中英

获取Django模型的主要字段的名称

[英]Get name of primary field of Django model

在Django中,每个模型都有一个伪属性pk ,它指向声明为主键的字段。

class TestModel(models.Model):
    payload = models.Charfield(max_length=200)

在此模型中, pk属性将指向隐式id字段,如果没有声明字段是主要字段,则生成该字段。

class CustomPK(models.Model)
    primary = models.CharField(max_length=100, primary=True)
    payload = models.Charfield(max_length=200)

在此模型中, pk属性将指向显式定义的主键字段primary

所以我的问题是,我怎样才能获得该字段的名称,即主键?

您还将在pk-attribute上具有属性“name”。 这似乎保留了Field的名称。

CustomPK._meta.pk.name

在我的情况下,我得到值“id”作为结果(就像它应该)。 :-)

字段对象具有primary_key属性

for field in CustomPK._meta.fields:
  print field.primary_key
  print field.name


# True
# primary
# False
# payload

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM