Decir que tengo una clase Django algo como esto:¿Cómo puedo obtener programáticamente la max_length de un campo de modelo de Django?
class Person(models.Model):
name = models.CharField(max_length=50)
# ...
Como puedo programáticamente obtener el valor para el campo max_length
name
?
Buena respuesta, pero no estoy de acuerdo con el segundo comentario. El guión bajo enfrente de _meta es engañoso, IMO (y he visto a los desarrolladores centrales de Django estar de acuerdo, está en parte allí solo para evitar conflictos de nombres con campos de modelos). Usar _meta no es un mal olor, es bueno; significa que estás siendo SECO y no haciendo suposiciones injustificadas. –
Carl: En realidad pareces estar de acuerdo con mi comentario, que solo observaba la convención de nomenclatura y la implicación que normalmente tendría. Sin embargo, tiene razón en que es engañoso: consulte http://www.b-list.org/weblog/2007/nov/04/working-models/, por ejemplo, –
. Encontré este nombramiento molesto en el pasado, porque usted no se puede acceder a las variables con guiones bajos al principio en las plantillas de Django. Agregamos una nueva propiedad que apuntaba a _meta para evitar eso. –