Ответ 1
У вас также будет атрибут "имя" в атрибуте pk. Это похоже на имя поля.
CustomPK._meta.pk.name
В моем случае я получаю значение "id" в качестве результата (как и должно).: -)
В 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. Это похоже на имя поля.
CustomPK._meta.pk.name
В моем случае я получаю значение "id" в качестве результата (как и должно).: -)
Field объекты имеют атрибут primary_key
for field in CustomPK._meta.fields:
print field.primary_key
print field.name
# True
# primary
# False
# payload