如何在django中序列化模型内的所有模型字段

时间:2013-03-12 03:22:49

标签: python django

我将django模板中的模型对象设为Obj

现在我想要一个通用函数,它可以显示所有字段和值,如此

{% for instance in data %}
    {% for field, value in instance.fields.items %}
        {{ field }}: {{ value }}
    {% endfor %}
{% endfor %}

我在Model

中试过这个
def objectdata(self):
        return serializers.serialize( "python", self.objects.all() ) 

然后我得到了最大的递归错误,因为它正在循环我的这个函数。

我无法编辑视图。有什么方法可以在模型中添加一些东西,使其工作

1 个答案:

答案 0 :(得分:0)

一些提示: 如果instance是django Model实例,则字段列表位于instance._meta.fields中。您可以使用它来遍历实例并获取所需的列表:

def objectdata(self):
    k_w = {}
    for field in self._meta.fields :
        k_w[field.name] = self.__getattr__(field.name)

    return k_w

小心使用像ForeignKey这样的字段......