Ma question est juste une extension de ce fil [Question] http://stackoverflow.com/questions/851636/default-filter-in-django-admin.Filtre de liste django-admin par défaut
from myproject.myapp.mymodels import fieldC
class Poll(models.Model):
fieldA = models.CharField(max_length=80, choices=CHOICES.MyCHOICES)
fieldB = models.ForeignKey(fieldC)
admin.py
list_display = ('fieldB__fieldc1')
Now my list filter shows four criteria All, A ,B ,C .
Ce que je veux est de savoir si le super-utilisateur est connecté, le filtre doit montrer tous les quatre critères Tous, A, B, C et si l'utilisateur est autre que le filtre ne doit montrer super-utilisateur Tout, A, B.
Comment puis-je obtenir ceci? Voici mon vrai morceau de admin.py
def changelist_view(self, request, extra_context=None):
referer = request.META.get('HTTP_REFERER', '')
test = referer.split(request.META['PATH_INFO'])
if test[-1] and not test[-1].startswith('?'):
if not request.GET.has_key('patient__patient_type__exact'):
q = request.GET.copy()
q['patient__patient_type__exact'] = 'Real'
request.GET = q
request.META['QUERY_STRING'] = request.GET.urlencode()
if not request.user.is_superuser:
q['patient__patient_type__exact'] = 'Real'
return super(VisitAdmin, self).changelist_view(request, extra_context)
Thanks in advance
Je suis confus si vous essayez de faire un * filtre par défaut * différent pour l'utilisateur et su, ou un * ensemble différent de jeux de filtres * pour l'utilisateur et su? –
J'utilise le même filtre pour les superutilisateurs et les autres utilisateurs. Je veux juste que lorsque superutilisateur se connecte, il devrait voir tous les choix comme "Réel", "Test" et "Invité" dans le filtre_liste et il devrait être capable de filtrer les lignes de cette table mais si l'utilisateur n'est pas superutilisateur, le filtre ne devrait afficher que les choix "Réel" et "Invité" dans le list_filter et il ne devrait pouvoir filtrer les lignes que pour les choix "Réel" et "Invité". –