Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Usuarios independientes en el Admin de Django

Muchas veces los programadores de Django quieren usar la poderosa herramienta del Admin para permitir funcionar como un centro de administración para los diversos Usuarios que se registran en un sitio. Pero al generar usuarios de staff con acceso al admin, estos pueden editar cualquier campo, a pesar de no ser el suyo. Para evitar esto, es posible configurar nuestro archivo admin.py para sobre heredar el administrador y sobre escribir dos funciones. Veamos el código:


from django.contrib import admin
from myproject.pages.models import pagesPage



class pagesPageAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if getattr(obj, 'added_by', None) is None:
obj.added_by = request.user
obj.last_modified_by = request.user
obj.save()

def queryset(self, request):
qs = super(pagesPageAdmin, self).queryset(request)

#If super-user, shows all rows
if request.user.is_superuser:
return qs
return qs.filter(added_by=request.user)


admin.site.register(pagesPage, pagesPageAdmin)

Tomando en cuenta que hemos declarado en models.py los necesarios campos, como lo es added_by como foreign key a User, de Auth. Espero ayude!



This post first appeared on H1n1-Al, please read the originial post: here

Share the post

Usuarios independientes en el Admin de Django

×

Subscribe to H1n1-al

Get updates delivered right to your inbox!

Thank you for your subscription

×