Допустим, у меня есть следующие Django модели:
class Person(models.Model):
name = models.CharField(max_length=50)
class Pet(models.Model):
name = models.CharField(max_length=50)
person = models.ForeignKey(Person, related_name='pets', on_delete=models.CASCADE)
Мне нужно получить строковое значение related_name
для Pet.person
во время выполнения. Я могу получить related_query_name
, то есть "pet"
, но это немного отличается от related_name
, "pets"
:
print(Pet._meta.get_field("person").related_query_name())
# pet
Похоже, связанное имя в классе Person
, но я не уверен, как доказать, что он привязан к Pet.person
.
print("pets" in [f.name for f in Person._meta.get_fields()])
# True
Есть ли еще способ сделать это?