0

我有两个模型:

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。怎么了?

4

1 回答 1

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实例。

于 2014-05-03T10:45:24.043 回答