2011-11-14 6 views
1

J'ai un champ Foo avec un ForeignKey qui pointe vers User. J'ai besoin de créer un filtre dans l'admin qui affiche uniquement les utilisateurs qui ont au moins un Foo. Ce serait facile avec la version de développement de Django, mais je suis coincé avec le 1.3.Django admin - Créer un filtre complexe sur le modèle utilisateur

J'ai vu here comment ajouter un filtre personnalisé en utilisant la classe non documentée FilterSpec. Mon problème est qu'il nécessite de modifier le modèle User. Je pourrais hériter de User, mais j'ai déjà une configuration où les données supplémentaires sont mises dans un modèle Profile avec un lien one-to.one à User.

Existe-t-il un moyen moins intrusif d'ajouter un filtre personnalisé au modèle User?

+1

Attendez Django 1.4 (ou exécutez sur le tronc, mais ce n'est généralement pas une bonne idée), qui aura intégré filterspecs intégré. Sinon, vous n'avez pas de chance. –

+0

Nous avons utilisé django depuis le coffre depuis qu'ils ont eu i18N_urls et ça va. –

Répondre

1

Vous pouvez réellement utiliser la relation de clé étrangère vers l'arrière dans une requête ORM.

User.objects.filter(foo__isnull=False) 
+1

Je viens de réaliser que c'est vraiment vieux. J'espère que cela aide quelqu'un, peu importe! – pyrospade

+0

Merci - c'est assez vieux en effet. :-) Quoi qu'il en soit, le problème n'était pas de filtrer ces utilisateurs manuellement, mais plutôt de les avoir comme filtre dans l'admin Django. – Andrea

+1

Cela semble dans le ballpark - http://stackoverflow.com/questions/991926/custom-filter-in-django-admin-on-django-1-3-or-below – pyrospade

Questions connexes