Romain Jouin
Romain Jouin

Reputation: 4838

Django listing model fields in order

I am trying to list a model fields on the order of the model creation. I tried ._meta.get_all_field_names() but it seems to return a random dictionnary. How can I list an ordered list of fields in a view ?

I mean : I have a model like :

class UserInfo(models.Model):
    concerning                  = models.ForeignKey(User)
    title                       = models.CharField(max_length=100,              choices=zip(titles, titles))
    first_name                  = models.CharField(max_length=100  )
    family_name                 = models.CharField(max_length=100, )
    gender                      = models.CharField(max_length=1 ,               choices=(("f", "female"), ("m",  "male")))
    nationality                 = models.CharField(max_length=100,  blank=True, choices=(countries))
    email2                      = models.EmailField()
    Telephone                   = models.CharField(max_length=30)
    webpage                     = models.URLField(max_length=100,   blank=True)

And I want to list the fields in order : concerning / title / first_name / family_name/ etc...

Upvotes: 3

Views: 117

Answers (1)

Selcuk
Selcuk

Reputation: 59184

Django's built-in functions may help:

from django.forms.models import fields_for_model

...
fields = fields_for_model(UserInfo).keys()

returns

['concerning', 'title', 'first_name', ...]

Upvotes: 3

Related Questions