Il vous donne un filtre en fonction de l'état du personnel et du statut du super-utilisateur, mais qu'en est-il des groupes?Dans Django admin, comment filtrer les utilisateurs par groupe?
Répondre
Voir Customizing an Admin form in Django while also using autodiscover
Essentiellement, vous définissez une classe personnalisée Admin avec les fonctionnalités que vous souhaitez.
Ensuite, désinscrivez et enregistrez votre classe Admin révisée.
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
Depuis la version 1.3, il peut être fait using this:
list_filter = ('groups__name')
Bien sûr que @ vous explique S. Lott devez enregistrer votre classe personnalisée dans le fichier admin.py:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
list_filter = UserAdmin.list_filter + ('groups__name',)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
Voici un exemple complet, qui hérite de SimpleListFilter, qui est disponible dans Django 1.4 et plus.
https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter
Elle soutient la mise en toutes les étiquettes disponibles et les paramètres pour créer le filtre complètement personnalisé.
Il apparaît comme « Par groupe » dans le panneau de filtre, avec une liste de tous les groupes disponibles.
from django.contrib.admin import SimpleListFilter
from django.contrib.auth.models import Group
from django.utils.translation import ugettext as _
class GroupListFilter(SimpleListFilter):
title = _('group')
parameter_name = 'group'
def lookups(self, request, model_admin):
items =()
for group in Group.objects.all():
items += ((str(group.id), str(group.name),),)
return items
def queryset(self, request, queryset):
group_id = request.GET.get(self.parameter_name, None)
if group_id:
return queryset.filter(groups=group_id)
return queryset
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
list_filter = UserAdmin.list_filter + (GroupListFilter,)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
- 1. obtenir les utilisateurs par groupe dans sharepoint
- 2. Utilisateurs et groupes django - affichez l'appartenance à un groupe dans admin?
- 3. Django Admin SelectMultiple Widget
- 4. Relations dans Django Admin
- 5. Django admin - restriction de l'accès par l'utilisateur
- 6. Filtrer les utilisateurs de connexion
- 7. ManyToManyFields dans Django Admin
- 8. Django, Afficher les pouces dans Admin?
- 9. comment filtrer les éléments de liste par colonne utilisateur/groupe dans sharepoint?
- 10. Django admin, inline peupler
- 11. Django admin: désactiver les transactions DB
- 12. Comment filtrer les utilisateurs par e-mail dans Google App Engine?
- 13. django: using admin datepicker
- 14. Réorganiser les utilisateurs dans django auth
- 15. Django Admin Fieldsets
- 16. Django Admin & Model Deletion
- 17. Admin Django, message d'erreur personnalisé?
- 18. Django, Overriding comportement Admin Modèle
- 19. Comment obtenir une liste de tous les utilisateurs avec un groupe d'autorisation spécifique à Django
- 20. AppEngine/Django: éditer db.Key dans l'application Admin
- 21. Modèles liés Django - champs disponibles dans admin
- 22. Téléchargement de plusieurs images dans Django admin
- 23. Filtre personnalisé dans Django Admin sur Django 1.3 ou inférieur
- 24. Sélectionnez la liste Filtrage dans Django Admin
- 25. Filtrage dynamique sur FK dans Django Admin
- 26. Django admin, section sans "modèle"?
- 27. Comment faire des admin inlines dans Django 1.0?
- 28. Modèles de groupe dans l'administrateur django
- 29. Déboguer Django Admin Modèle Résolution
- 30. Filtrer une date complète dans django?
Nice, merci! Mais il apparaît comme "By name" suivi de la liste des groupes, ce qui est un peu déroutant, ce serait mieux s'il disait "By group" – thnee
Je suis d'accord avec @thnee. Cela peut être réalisé comme ceci 'list_filter = ('groups',)' – laltin