template safe linebreaksbr python django django-models oop

python - safe - linebreaksbr django



¿Cómo puedo obtener programáticamente max_length de un campo de modelo de Django? (2)

La pregunta es con respecto a los modelos, pero para las personas que intentan hacer lo mismo con los formularios (así es como terminé en este hilo), creo que este enfoque es bastante simple y claro:
1. En una plantilla:
{{form.name.field.max_length}}

2. En el código python (por ejemplo, en la vista)
form.name.field.max_length

Digamos que tengo una clase de Django algo como esto:

class Person(models.Model): name = models.CharField(max_length=50) # ...

¿Cómo puedo obtener programáticamente el valor max_length para el campo de name ?


Person._meta.get_field(''name'').max_length te dará este valor. Pero tener que usar _meta sugiere que esto es algo que no debes hacer en el uso normal.

Editar: como Carl señaló, este nombramiento es engañoso y parece bastante aceptable su uso: http://www.b-list.org/weblog/2007/nov/04/working-models/