2013-03-12 90 views
0

我有Django模板中可用的模型对象为Obj我如何序列化Django模型中的所有模型字段

现在我想可以在显示所有的领域和这样

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

我在模型尝试这个

def objectdata(self): 
     return serializers.serialize("python", self.objects.all()) 

然后我得到的最大递归错误,因为它是循环值的通用功能超过我的这个功能。

我无法编辑视图。有没有什么办法,我可以添加一些在型号才使该工作

回答

0

一些提示: 如果instance是一个Django模型实例字段列表是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的一些领域,...