Skip to main content
 首页 » 编程设计

python之Django:如何在没有此类实例的情况下对另一个类进行反向外键查找

2025年04月02日31java哥

我有以下两个 Django 类 MyClassA 和 MyClassB。

MyClassB 有一个指向 MyClassA 实例的外键引用。

from django.db import models 
 
class MyClassA(models.Model): 
    name = models.CharField(max_length=50, null=False) 
 
    @classmethod 
    def my_method_a(cls): 
        # What do I put here to call MyClassB.my_method_b()?? 
 
 
class MyClassB(models.Model): 
    name = models.CharField(max_length=50, null=False) 
    my_class_a = models.ForeignKey(MyClassA, related_name="MyClassB_my_class_a") 
 
    @staticmethod 
    def my_method_b(): 
        return "Hello" 

在 MyClassA 的类方法 my_method_a 中,我想调用 MyClassB 的静态方法 my_method_b。我该怎么做?如果 my_method_a 是一个实例方法,我会简单地执行 self.MyClassB_my_class_a.model.my_method_b()。但是因为我没有 MyClassA 的实例,所以我不知道该怎么做。

我可以使用 cls 而不是 self 吗?

请您参考如下方法:

因为它是一个staticmethod,所以您不需要一个实例。

您可以直接调用MyClassB.my_method_b()。