在两个模型

时间:2017-08-21 05:56:08

标签: django django-models

如何以编程方式从Django模型中获取related_name或related_query_name到另一个模型?

例如,在此代码中,如何获取Parent用于引用Child with?

的名称
class Parent(models.Model):
    title = models.CharField(max_length=10)


class Child(Parent):
    parent = models.OneToOneField(to=Parent, parent_link=True)
    description = models.TextField()

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容查找related_query_name

Child.parent.field.related_query_name()

答案 1 :(得分:1)

我不确定是否有内置功能来执行此操作,但这里是返回(related_name, related_query_name)的辅助函数

def get_related_names(model, field_name):
    remote_field = getattr(model, field_name).field.remote_field
    return (remote_field.related_name, remote_field.related_query_name)

get_related_names(Child, 'parent')