Obter campos do modelo no Django

Dado um modelo do Django, estou tentando listar todos os seus campos. Eu já vi alguns exemplos disso usando o atributo _meta model, mas o sublinhado na frente da meta não indica que o atributo _meta é um atributo privado e não deve ser acessado diretamente? ... Porque, por exemplo, o layout do _meta pode mudar no futuro e não ser uma API estável?

_Meta é uma exceção a esta regra? É estável e pronto para uso ou é considerado uma má prática acessá-lo? Ou existe uma função ou alguma outra maneira de examinar os campos de um modelo sem usar o atributo _meta? Abaixo está uma lista de alguns links mostrando como fazer isso usando o atributo _meta

Qualquer conselho é muito apreciado.

campo get / set do objeto django

http://www.djangofoo.com/80/get-list-model-fields

Como introspectar campos de modelo de django?

questionAnswers(8)

yourAnswerToTheQuestion