繁体   English   中英

django models.py中的Python

[英]Python in django models.py

这适用于python IDLE

class A:
    b = 0

    def __init__(self, value):
        self.b = value

obj1 = A(1)
obj2 = A(2)
obj3 = A(3)
k = [obj1, obj2, obj3]
result = sum(i.b for i in k)
print str(result)

但这不适用于Django / Python

from django.db import models

class Flatbar(models.Model):
    width = models.IntegerField()
    height = models.IntegerField()

    def Area(self):
        return self.width * self.height

class Section(models.Model):
    flatbars = models.ManyToManyField(Flatbar)

    def Area(self):
        return str(sum(f.Area for f in self.flatbars))

为什么这不起作用?如何使用lambda函数来做到这一点?

ManyToManyField的属性产生一个管理器,并且您将Area用作方法。

return str(sum(f.Area() for f in self.flatbars.all()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM