当我在Django模板中使用以下代码时,我得到一个TypeError:
{% for signature in petition.get_signatures %}
{% include 'petition/signature.html' with petition=petition %}
{% endfor %}
以下是我的模型和课程:
class Petition(models.Model):
title = models.CharField(max_length= 90, default="Enter petition title here")
created_on = models.DateTimeField(auto_now_add=True)
image = models.ImageField(null=False, upload_to='static/petition-photos/%Y/%m/%d')
video = models.CharField(max_length=600, default="Enter an external video link")
petition = models.TextField(null=False, default="Type your petition here")
created_by = models.ForeignKey(User)
def total_likes(self):
return self.like_set.count()
def __str__(self):
return self.title[:50]
def get_signatures(self):
return self.signature_set.all
class Signature(models.Model):
petition= models.ForeignKey(Petition)
user = models.ForeignKey(User)
description = models.TextField(null=False, blank=False)
anonymous = models.BooleanField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.petition
当我加载带有'for'条件的模板视图页面时,出现以下错误消息。我得到的错误消息是'method' object is not iterable
。我可能做错了什么?有解决方案吗我有点像菜鸟,所以如果你能解释一下解决方案,那就太好了。
答案 0 :(得分:1)
您需要调用 (pNeighborList[curNode]).pNeighbors
方法:
.all()
您返回方法对象本身,而不是调用时产生的结果,并且def get_signatures(self):
return self.signature_set.all()
循环尝试迭代该方法对象,并且不能。