La zona de administración de Django es una de las cosas que más agradecemos los programadores. El problema viene cuando queremos permitir que el usuario la utilice… Para eso primero hay que personalizarla un poco.
Una de las personalizaciones interesantes es que el usuario no vea todas las entradas de una tabla, por ejemplo, para ello podemos hacer uso de este código. Espero que os sea de utilidad.
TablaEjemploAdmin(models.Model): list_display = ... list_filter = ... ordering = ... def queryset(self, request): # Obtenemos el listado original qs = super(TablaEjemploAdmin, self).queryset(request) # Trabajamos con él para, por ejemplo, mostrar sólo entradas # cuyo user sea igual al que realiza la petición qs = qs.exclude(user!=request.user) # Se devuelve el listado return qs admin.register(TablaEjemplo, TablaEjemploAdmin)
¿Lo hacéis de otra forma? Por favor, colaborar con un comentario.