在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
所以我的问题是,我怎样才能获得该字段的名称,即主键?
答案 0 :(得分:40)
您还将拥有一个属性" name"在pk属性上。这似乎保留了Field的名称。
CustomPK._meta.pk.name
在我的情况下,我得到的价值" id"结果(就像它应该)。 : - )
答案 1 :(得分:3)
Field个对象具有primary_key
属性
for field in CustomPK._meta.fields:
print field.primary_key
print field.name
# True
# primary
# False
# payload