Вы можете получить список полей из модели с помощью Model._meta.get_fields()
. Затем для каждого поля вы можете проверить, является ли оно ForeignKey
(или OneToOneField
, который является подклассом ForeignKey
) с isinstance(field, ForeignKey)
, а затем получить атрибут field.on_delete
, чтобы определить, что такое "родительский элемент". "будет делать с" потомком ", если он удален.
Таким образом, вы можете, например, получить имена полей, для которых ForeignKey
имеет значение CASCADE
с помощью:
[f.name
for f in MyModel._meta.get_fields()
if isinstance(f, ForeignKey) and <b>f.remote_field.on_delete is models.CASCADE</b>]