with tutorial the español applications django null django-admin changelist

tutorial - En la lista de cambios de administración de Django, ¿cómo se muestra un espacio en blanco en lugar del predeterminado "(Ninguno)"?



the django project (2)

Cuando un campo es nulo en la base de datos, Django inserta "(Ninguno)" para mantener el lugar del nulo cuando se muestra una lista de cambios. Si bien es descriptivo, cuando hay muchos campos en una lista de cambios, hace que todo esté muy ocupado para mirar, mientras que un campo en blanco sería igual de útil pero mucho menos desordenado. Entonces, ¿hay alguna forma de cambiar el texto que Django usa para representar campos nulos en la lista de cambios? No importa si la solución es modeladmin-specific o admin wide.

También debería agregar que conozco la solución donde defines campos personalizados y luego sacas una cadena en blanco. Eso funciona, pero hace que la columna sea insuperable, y esa es una prioridad antes de la visualización, por lo que no es una opción.


Puede anular el comportamiento individual de ModelAdmin con esta solución alternativa:

from django.contrib.admin.views import main ... ... ... class MyModelAdmin(admin.ModelAdmin): def __init__(self,*args,**kwargs): super(MyModelAdmin, self).__init__(*args, **kwargs) main.EMPTY_CHANGELIST_VALUE = ''-''

Nota: __init__() el __init__() es incompatible con el @admin.register() , en su lugar deberá llamar a admin.site.register(Model, ModelAdmin) después de definir la clase Model .


Comenzando con Django 1.9, este comportamiento ha cambiado y se ha agregado una funcionalidad personalizada para admitir una solución a la situación que describe.

Con Django 1.9, Django ahora usa un ''-'' (guión) en lugar de "(Ninguno)" para mostrar NULL en el administrador de Django.

Además, ahora puedes personalizar esta pantalla predeterminada ''-'' (guión) para el administrador de Django con empty_value_display : globalmente, para una clase de administrador específica o un campo específico:

Globalmente:

# In settings.py to show ''???'' instead of ''-'' for all null django admin values from django.contrib import admin admin.site.empty_value_display = ''???''

Para todos los campos en una clase de administrador de Django:

# admin.py to show "Unknown Item field" instead of ''-'' for null values in all Item fields class ItemAdmin(admin.ModelAdmin): empty_value_display = ''Unknown Item field''

Para un solo campo:

# admin.py to show "No known price" instead of ''-'' just for null price values in Item class ItemAdmin(admin.ModelAdmin): list_display = (''name'',''price_view'') def price_view(self, obj): return obj.price price_view.empty_value_display = ''No known price''