2012-06-20 10 views
6

Ich habe ein Modell für einen Blogpost, wo der Besitzer des Beitrags ein Fremdschlüssel für Benutzer ist. Mit diesem Modell kann jeder Benutzer einen Blogeintrag besitzen. Ich möchte es so ändern, dass nur die Benutzer in einer bestimmten Gruppe, die es "Blogger" nennt, ein Blog-Post-Objekt besitzen können. Idealerweise sollte es auch im Admin erscheinen, ich meine in dem Blogpost admin jetzt das Menü für 'Besitzer' listet alle Benutzer auf, es sollte nur diejenigen in der 'Blogger'-Gruppe auflisten. Wie mache ich das mit Django 1.3?Django, Filter Benutzer nach Gruppe in einem Modell Fremdschlüssel

Antwort

12

Verwenden limit_choices_to paramether in Ihrer ForeignKey Definition wie folgt:

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

Dies ist sehr hilfreich danke. Aber was, wenn ich meine Auswahl auf viele Gruppen beschränken möchte, statt auf eine? Zum Beispiel möchte ich Benutzer entweder in der Gruppe "Blogger" oder in der Gruppe "Viewer" auswählen. – jgmao

+3

Einfach. author = models.ForeignKey ("auth.User", limit_choices_to = {'Gruppen__Name__in': ["Blogger", "Zuschauer"]}) –

+0

Perfekt !!! Ich habe das stundenlang gesucht !! –

Verwandte Themen