2010-07-01 10 views
13

que estoy tratando de iterar a través de los campos a medida que se escriben dentro de mi modelo:iteración a través de campos del modelo de Django -

Actualmente estoy usando esto:

def attrs(self): 
    for attr, value in self.__dict__.iteritems(): 
    yield attr, value 

pero el orden parece más o menos al azar :(


Algunas ideas?

Respuesta

22

El atributo _meta en Model clases e instancias es un django.db.models.options.Options que proporciona acceso a todo tipo de información útil sobre el Model en cuestión.

Para los campos, se los dará en el orden en que se crearon (es decir, en el mismo orden en que fueron declarados).

def attrs(self): 
    for field in self._meta.fields: 
     yield field.name, getattr(self, field.name) 
Cuestiones relacionadas