Django

De Cliss XXI
Révision datée du 10 mars 2010 à 18:04 par imported>SylvainBeucler (→‎Personnaliser l'interface d'admin)
Sauter à la navigation Sauter à la recherche

Personnaliser l'interface d'admin

De quoi aller plus loin, principalement les quelques derniers slides (ce sont des choses que j'avais cherché pendant trois plombes):

Modifier le queryset dynamiquement:

class StuffAdmin(admin.ModelAdmin)
    ...
    def queryset(self, request):
        qs = super(self.__class__, self).queryset(request)
        qs = qs.filter(user=request.user)
        return qs

    # or
    def queryset(self, request):
        qs = self.model._default_manager.filter(user=request.user)
        return qs

Forcer des champs dynamiquement:

class StuffAdmin(admin.ModelAdmin)
    ...
    def save_model(self, request, object, form, change):
        object.user = request.user
        object.save()

Liens