我有两种模式:
class Hi(models.Model):
name = models.CharField(max_length=2)
class Hello(models.Model):
name = models.CharField(max_length=50)
his = models.ManyToManyField(Hi)
我正在尝试渲染Hello
模型。因此我tables.py
喜欢这样:
class HelloTable(tables.Table):
his = models.ColoumnField()
def render_his(self, value):
hi = []
for i in value.his.all():
hi.append(i)
return (',').join(hi)
#And the metas
我得到ManyToMany has no attribute his
。怎么了?
答案 0 :(得分:0)
这应该可以解决您的问题并简化您的代码:
def render_his(self, value):
return (', ').join(list(value.all()))
或
def render_his(self, value):
return (', ').join([x.name for x in value.all()])
如果您想要特定属性而不是unicode
对象的Hi
表示。
您收到错误是因为value
是ManyToManyField
个实例,而不是Hello
个实例。