0

これは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))

なぜこれが機能しないのですか?ラムダ関数を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

3

a の属性はManyToManyFieldマネージャーを生成しArea、メソッドを作成しました。

return str(sum(f.Area() for f in self.flatbars.all()))
于 2013-01-17T20:27:07.517 に答える