2011-12-30 21 views
6

Quiero ocultar el signo más + en algunos campos de clave externa de un modelo específico en la interfaz django-admin. ¿Es posible?Django admin, ocultar + signo más en campo de clave externa

¡Gracias de antemano!

+1

Esta pregunta tiene un duplicado con una muy buena respuesta [aquí] (http://stackoverflow.com/a/17348422/1378264) –

Respuesta

2

Si solo quieres ocultarlo para fines cosméticos, utilizaría un script de Javascript que oculta este signo '+'.

Puede agregar fuentes de JavaScript personalizadas a Admin Modelform utilizando la clase interna de Medios, como se describe en el docs. Algo como esto:

class MyModelAdmin(admin.ModelAdmin): 
    class Media: 
     js = ("js/hide_myfield_addlink.js",) 

La fuente Javascript sería algo como:

/* file: hide_myfield_addlink.js */ 
django.jQuery(document).ready(function() { 
    django.jQuery("#add_id_myfield").hide(); 
}); 

Por otro lado, si los usuarios administradores nunca deben ser capaces de añadir un modelo de este tipo, no dan ellas el permiso para agregar esos. Entonces estos enlaces de agregar nunca se mostrarán.

3

Se agrega + cuando el modelo de esa clave foránea también se puede agregar en el administrador y se basa en los permisos que tiene el usuario en ese modelo. Si el usuario no puede agregar esos tipos de modelos, anule has_add_permission en la clave externa ModelAdmin (es decir, la que el signo más le permitiría agregar), y devuelva False para las condiciones apropiadas. El + desaparecerá para cualquier usuario no permitido.

Cuestiones relacionadas