2010-08-31 10 views
6

Ich habe auf Django Trennung von Benutzern und Profilen gelesen, und ich habe beschlossen, mit einem Modell namens UserProfile, die in einer App Konten als mein Profil befindet. Das Problem ist, jetzt habe ich zwei getrennte Bereiche des Administrators, einen zum Ändern des Benutzers und einen zum Ändern des Benutzerprofils. Ist es möglich, die beiden Modelle als eine im Admin zu sehen? Wenn Sie also einen Benutzer hinzufügen oder ändern, sehen Sie alle Felder für Benutzer und Profil in derselben Ansicht? Es ist auch selbstverständlich, dass das Hinzufügen eines Löschens eines Benutzers ein Profil hinzufügen oder löschen sollte und es nicht möglich sein sollte, ein Profil ohne den Benutzer hinzuzufügen oder zu löschen.Benutzer und UserProfile in der Admin verbinden

Ich habe Bits und Stücke gesehen, wie dies funktioniert (zum Beispiel, etwas, das ein Profil hinzufügt, wenn Sie einen Benutzer hinzufügen), aber nicht als Ganzes.

Antwort

12

Sie können dies tun, indem inline admin models

verwenden, bevor Sie Ihren kundenspezifischen User Admin Schreiben Sie die bereits registriert User Admin

admin.site.unregister(User) 

definieren die Inline UserProfile

class UserProfileInline(admin.TabularInline): 
    model = UserProfile 

und Verwendung deregistrieren haben die inline in der User admin

class UserAdmin(admin.ModelAdmin): 
    inlines = [UserProfileInline] 
admin.site.register(User, UserAdmin) 
+0

Wenn ich dies tue, bekomme ich mehrere "Profil" -Formulare unter jedem Benutzer, und ich kann nicht Daten darin speichern; das verursacht "" Hinzufügen oder Aktualisieren einer untergeordneten Zeile nicht möglich: eine Fremdschlüsseleinschränkung schlägt fehl "". Liegt das daran, dass South im letzten Jahr etwas vermasselt hat? Nach einigen Richtungen hier suchend, tnx. –

Verwandte Themen