2016-09-09 5 views
0

Ich habe zwei Modelle Restaurant und Details. Der Superuser weist jedem Restaurant einen Benutzer zu. Wenn sich dieser Benutzer bei admin anmeldet, möchte ich nur die Details anzeigen, die dem Restaurant dieses Benutzers zugeordnet sind, und er sollte sie auch bearbeiten können. Ich versuchte, Admins Queryset-Funktion außer Kraft zu setzen, aber ohne Erfolg. Jede Hilfe würde geschätzt werden. Das ist, was ich bisher gemacht habeSo überschreiben Django Admin

Ich bin nur ein Anfänger in Django.

class RestaurantAdmin(admin.ModelAdmin): 
    model = Details 

    def save_model(self, request, obj, form, change): 
     obj.user = request.user 
     super(RestaurantAdmin, self).save_model(request, obj, form, change) 

    def queryset(self, request): 
     print(request.user) 
     qs = super(ResaturantAdmin, self).queryset(request) 
     # If super-user, show all comments 
     if request.user.is_superuser: 
      return qs 
     return qs.filter(owner=request.user) 




admin.site.register(Restaurant) 
admin.site.register(Details,RestaurantAdmin) 

Antwort

0

Die Methode, die Sie wird außer Kraft setzen müssen get_queryset genannt, nicht queryset.