有一个看起来像这样的类定义
class someClass(models.Model):
field1 = models.ForeignKey('other_app.field4')
field2 = models.ManyToManyField('other_app.field5')
variable_name = [1-char choices]
field3 = models.CharField(max_length=1, choices=variable_name, blank=True)
当我尝试在管理面板中编辑此类时,我得到:
TypeError at /admin/[app]/[someClass]/add/
假设它与ManytoMany字段有关,有任何明显的解决方法吗?
更新:好的,所以我发现了问题:我的合作伙伴编写的代码有一个迭代__str__
函数:
def __str__(self):
str_rep = '%s for ' % (self.field1)
for p in self.field2:
str_rep += str(p) + self.field3
关于如何重写这个的任何想法?
答案 0 :(得分:1)
将来,请尝试发布实际的追溯和相关的代码行。它会向我们展示这段代码的确切位置。
field2
不可迭代。您需要通过致电QuerySet
或ManyRelatedManager
从all()
获取filter(...)
。
https://docs.djangoproject.com/en/dev/topics/db/queries/#many-to-many-relationships
def __str__(self):
str_rep = '%s for ' % (self.field1)
for p in self.field2.all():
str_rep += str(p) + self.field3