Интроспекция связанной модели для определения имени атрибута для обратного дескриптора?
Данная схема:
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".