【问题标题】:how to know all django reverse lookups pointing to a model如何知道所有指向模型的 django 反向查找
【发布时间】:2020-06-16 13:45:43
【问题描述】:

我有一个模型 A 和几个模型(B、C 和 D),它们都有一个指向 A 的外部字段。我想实现一个方法来收集 B、C 和 D 中与A 中的每条记录,通过在 B、C 和 D 中的外键中设置的反向查找。

问题是外键指向A的模型的数量可以改变,所以我想让方法动态,所以我需要知道指向A的模型及其字段,以及它们的related_name

有没有办法获取这些信息?

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    您可以使用模型的 Meta 类来获取所有字段的列表并过滤它们以仅获取反向关系。

    def get_reverse_lookup_fields(model: models.Model):
        return [
            field
            for field in model._meta.get_fields()
            if field.auto_created and not field.concrete
        ]
    

    Here are the field attributes你可以查,here is the Meta API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2014-02-16
      • 2021-08-27
      • 1970-01-01
      • 2018-10-15
      • 2013-08-18
      • 2011-11-21
      相关资源
      最近更新 更多