A ForeignKey
объект имеет атрибут attname
, который указывает имя атрибута, содержащего значение первичного ключа, к которому он относится.
Для вашего owner
значение field.attname
будет здесь owner_id
, если вы ничего не измените.
Мы можем определить словарь, который отображает имена ForeignKey
s в атрибуты, которые хранят первичный ключ, например:
{
field.name: field.attname
for field in self._meta.get_fields(include_parents=False)
if isinstance(field, models.ForeignKey)
}
Для вашей модели это сгенерирует словарь:
{'owner': 'owner_id'}