如何检索Django模型的相关名称

时间:2016-11-29 16:46:05

标签: python django django-models

给出如下模型:

class Author(models.Model):
    name=models.CharField(max_length=30)

class Article(models.Model):
    writer=models.ForeignKey(Author)

你会怎么做:

>>> get_related_name(Author, Article)
'article_set'

2 个答案:

答案 0 :(得分:0)

您可以使用_meta API

for field in Author._meta.get_fields():
    if field.related_model == Article
        print(field.related_name)

答案 1 :(得分:0)

每个model's _meta attribute存储“关于”模型的信息,而不是字段或方法。这包括related_name ForeignKey关系。

related_name = None
for field in Author._meta.get_fields():
    if field.related_model is Article:
        related_name = field.related_name
        break