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

标签 python django static-methods class-method instance-method

我有以下两个 Django 类 MyClassAMyClassB

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()

关于python - Django:如何在没有此类实例的情况下对另一个类进行反向外键查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39521610/

相关文章:

c++ - 命名空间 + 函数与类上的静态方法

python - 如何将方程绘制到具有重新定义索引的数组中

java - hadoop streaming,使用-libjars 包含jar 文件

python - Django - 将参数传递给 CBV 装饰器的正确方法?

带有变量的 Django url 模板标签

c++ - 在 C++ 中实现静态变量的访问器

python - 'QPixmap' 没有属性 'grabWindow'

python - 进化模拟器中的深度复制造成内存泄漏

python - 如何在 Django Admin 中从外键动态访问字段

java - 无法完成从类到数据库适配器中的非静态方法的静态引用