Интроспекция связанной модели для определения имени атрибута для обратного дескриптора?

Данная схема:

class User(models.Model):
    name = models.CharField(max_length=50)

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)

Объекты пользователя в итоге будут иметь атрибут post_set типа:

django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager

Который возвращает RelatedManager, основанный на менеджере по умолчанию Post. Cool.

Q: Но если вы пытаетесь проанализировать схему, как вы определите, что имя атрибута - "post_set"?

Когда я вызываю User._meta.get_fields(), я вижу поле под названием "post", а не "post_set". (Из типа: django.db.models.fields.reverse_related.ManyToOneRel)

Я исследовал почти весь API ManyToOneRel и не могу найти ни одного атрибута или метода, который бы возвращал значение "post_set", только "post".

Вернуться на верх