通用迭代视图模型

时间:2015-05-20 08:18:43

标签: python django

我想知道是否有可能使下面的函数变得通用,以便它遍历任何给定的模型,并且不需要像下面的函数那样在该模型中声明所有字段。

def CustomerTable(ExampleModel):
    CustomerInfo = ExampleModel.objects.all()
    CustomerJson = []
    for customers in CustomerInfo:
        CustomerJson.append({
                            'ID': customers.ID,
                            'Title': customers.Title,
                            'Name': customers.Name,
                            'Description': customers.Description,
                            'Location': customers.Location,
                            'DateAdded': customers.DateAdded,
                            })
    CustomerTable = {'Records' :CustomerJson}
    Return HttpResponse (CustomerTable)

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以将模型作为参数传递给函数:

def CustomerTable(anymodel):

然后你可以在

提供的字段上构建json迭代
anymodel._meta.get_all_field_names()

但是,字段的映射不准确(外键的fieldname_id)。

所以,正如Cheng的回答中所提到的,最好使用

anymodel._meta.get_fields()