我想知道是否有可能使下面的函数变得通用,以便它遍历任何给定的模型,并且不需要像下面的函数那样在该模型中声明所有字段。
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)
感谢您的帮助!
答案 0 :(得分:1)
查看此帖子:Django: Get list of model fields?
您可以调用更多方法,因此请查看官方文档:https://docs.djangoproject.com/en/1.8/ref/models/meta/#retrieving-all-field-instances-of-a-model
答案 1 :(得分:0)
您可以将模型作为参数传递给函数:
def CustomerTable(anymodel):
然后你可以在
提供的字段上构建json迭代anymodel._meta.get_all_field_names()
但是,字段的映射不准确(外键的fieldname_id)。
所以,正如Cheng的回答中所提到的,最好使用
anymodel._meta.get_fields()