Différences entre versions de « Django »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (lien vers cookbook django)
imported>SylvainBeucler
Ligne 5 : Ligne 5 :
 
* [http://lincolnloop.com/assets/Customizing_the_Django_Admin-EuroDjangoCon09.pdf Customizing_the_Django_Admin-EuroDjangoCon09.pdf]
 
* [http://lincolnloop.com/assets/Customizing_the_Django_Admin-EuroDjangoCon09.pdf Customizing_the_Django_Admin-EuroDjangoCon09.pdf]
 
* [http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser CookBookNewformsAdminAndUser]
 
* [http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser CookBookNewformsAdminAndUser]
 +
* [http://www.ibm.com/developerworks/opensource/library/os-django-admin/index.html Doing more with the Django admin]
  
 
Modifier le queryset dynamiquement:
 
Modifier le queryset dynamiquement:

Version du 10 mars 2010 à 17:04

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