_meta是私有的,但相对稳定。我们正在努力对其进行形式化,记录和删除下划线,这可能在1.3或1.4之前发生。我想将尽一切努力来确保事物向后兼容,因为无论如何,很多人都在使用它。
如果你特别关注兼容性,请编写一个采用模型并返回字段的函数。这意味着,如果将来发生某些变化,则只需更改一个功能。
def get_model_fields(model): return model._meta.fields
我相信这将返回
Field对象列表。要从实例获取每个字段的值,请使用
getattr(instance, field.name)。
更新:Django贡献者正在研究一个API,以替换_meta对象作为Google Summer of Code的一部分。



