迭代 Django 模型属性

Iterating over Django model attributes

我有一个 class 定义如下:

class MyModel(models.Model):
...

我有这个 class 的一个实例,我想遍历它的元属性:

opts = instance._meta
for f in opts.many_to_many + opts.concrete_fields + opts.virtual_fields:
    ...

此代码适用于 Django 1.7,但不适用于 Django 1.8。 我收到的错误是类型错误,它的值是: can only concatenate tuple (not "list") to tuple

它可能有什么问题?

问题出在 opts.virtual_fields 类型中。现在是 list。我猜它在 1.8

中被更改了

求解:

metas = opts.concrete_fields + opts.many_to_many + tuple(opts.virtual_fields)