Saltar al contenido

Cambiar el nombre del campo en el administrador de django

Recuerda que en las ciencias informáticas cualquier problema casi siempere suele tener más de una soluciones, no obstante nosotros te mostramos lo más óptimo y mejor.

Solución:

Lo que estaba buscando es:

name = models.CharField(max_length=200, verbose_name="Nom")

¡Gracias de todos modos por tu ayuda!

Mire Field.label. Vea esto: https://docs.djangoproject.com/en/dev/ref/forms/fields/#label

Básicamente, es

class MyForm(forms.Form):
    name = forms.CharField(label='My Name')

Pero eso requiere extender el administrador, lo que puede ser más de lo que desea hacer.

Ajuste verbose_name en el campo del modelo, como en la respuesta aceptada, funciona, pero tiene algunas desventajas:

  • También afectará la etiqueta de campo en formularios no administrativos, como se menciona en el comentario.

  • Cambia la definición del campo del modelo, por lo que da como resultado una nueva migración.

Si usted solamente desea cambiar el nombre para mostrar del campo en la administración sitio, puede anular todo el formulario, como se sugiere en esta otra respuesta, o simplemente modificar la etiqueta del campo del formulario extendiendo ModelAdmin.get_form()como en el siguiente ejemplo:

class MyModelAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, change=False, **kwargs):
        form = super().get_form(request, obj, change, **kwargs)
        form.base_fields['my_model_field_name'].label = 'new name'
        return form

Tenga en cuenta que esto no funciona si el campo está en readonly_fields (al menos en Django 2.2.16), porque el campo será excluido form.base_fields (ver fuente). En ese caso, una opción sería eliminar el campo de readonly_fields y desactívelo en su lugar, agregando otra línea dentro get_form():

form.base_fields['my_model_field_name'].disabled = True

Recuerda que puedes dar difusión a esta reseña si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *