2012-06-20 5 views
6

Ho un modello per un post di blog in cui il proprietario del post è una chiave esterna per Utente. Con quel modello ogni utente può possedere un post sul blog. Mi piacerebbe cambiarlo in modo che solo gli utenti di un determinato gruppo -let lo chiamino "bloggers" - possano possedere un oggetto post del blog. Idealmente dovrebbe apparire anche nell'amministratore, voglio dire nel post del blog admin in questo momento il menu per 'owner' elenca tutti gli utenti, dovrebbe solo elencare quelli nel gruppo 'bloggers'. Come faccio a farlo con Django 1.3?Django, filtra gli utenti per gruppo in una chiave esterna del modello

risposta

12

Usa limit_choices_to paramether nella definizione ForeignKey in questo modo:

author = models.ForeignKey("auth.User", limit_choices_to={'groups__name': "bloggers"}) 
+0

Questo è molto utile grazie. Ma cosa succede se voglio limitare le mie scelte a molti gruppi invece di uno solo? Ad esempio, vorrei selezionare gli utenti nel gruppo "bloggers" o "viewers". – jgmao

+3

Semplice. autore = models.ForeignKey ("auth.User", limit_choices_to = {'groups__name__in': ["blogger", "spettatori"]}) –

+0

Perfetto !!! L'ho cercato per ore !! –