Différences entre versions de « Django »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
imported>SylvainBeucler
Ligne 6 : Ligne 6 :
 
* [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]
 
* [http://www.ibm.com/developerworks/opensource/library/os-django-admin/index.html Doing more with the Django admin]
 
+
* [http://joshourisman.com/2009/10/15/django-admin-awesomeness/ Django admin awesomeness]: vue alternative avec un ModelAdmin dérivé
 
Modifier le queryset dynamiquement:
 
Modifier le queryset dynamiquement:
 
<pre>
 
<pre>

Version du 10 mars 2010 à 17:21

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