【问题标题】:How do I inherit class functions into a Django Model?如何将类函数继承到 Django 模型中?
【发布时间】:2021-07-28 19:27:35
【问题描述】:

我正在尝试将类中的函数继承到 Django 模型中,以便可以使用模型的实例调用类函数。在下面的示例中,我想将 DoStuff 类继承到模型 MainModel 中,因此我将收到以下输出:

>>> m = MainModel(var1=3, var2=4)
>>> m.do_stuff.add()
7

models.py:

from django.db import models

class DoStuff:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def add(self):
        return self.x + self.y

class MainModel(models.Model):
    var1 = models.IntegerField()
    var2 = models.IntegerField()
    do_stuff = DoStuff(var1, var2)  #How do I correctly do this?

我知道这个问题可能看起来有点微不足道,但它是我试图解决的更大问题的简化。

感谢您查看我的问题!

【问题讨论】:

    标签: django inheritance django-models


    【解决方案1】:

    您可以定义一个将使用var1var2 的属性,因此:

    class MainModel(models.Model):
        var1 = models.IntegerField()
        var2 = models.IntegerField()
        
        @property
        def do_stuff(self):
            return DoStuff(self.var1, self.var2)

    【讨论】:

    • 非常感谢威廉!
    猜你喜欢
    • 2015-03-05
    • 2017-05-15
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多