我有3个模特
class Room(models.Model):
house = models.ForeignKey('Property', related_name='rooms')
beds = models.IntegerField(max_length=10)
class Property(models.Model):
......
def free_places():
places = 0
for r in self.rooms:
x = r.beds - ((r.tenant).size())
places = places + x
return places
class Profile(model.Models):
room = models.ForeignKey(Room, blank=True, null=True, related_name='tenant')
首先,我想知道free_places方法应该是:free_places(self)还是free_places()。我认为它也有一些错误,但我不知道如何测试它,所以这里的问题是如何调用该方法?它的功能是否正确? 我想从django模板中调用它。
从“./manage.py shell”试试它我需要什么?
由于
答案 0 :(得分:1)
它应该是free_places(self):
您可以将方法定义为属性,然后从模板中调用该方法:
https://docs.djangoproject.com/en/dev/topics/db/models/#model-methods
该代码块中的最后一个示例
def _free_places(self):
places = 0
for r in self.rooms:
x = r.beds - ((r.tenant).size())
places = places + x
return places
free_places = property(_free_places)