2010-08-31 23 views
6

He estado leyendo sobre la separación de usuarios y perfiles de Django, y he decidido ir con un modelo llamado PerfilUsuario que se ubica en una aplicación de cuentas como en mi perfil. El problema es que ahora tengo dos áreas separadas del administrador, una para modificar el usuario y otra para modificar el perfil del usuario. ¿Es posible ver los dos modelos como uno solo en el administrador, por lo que si agrega o modifica un usuario, verá todos los campos para el Usuario y el Perfil en la misma vista? Tampoco es necesario decir que agregar un usuario que elimina debería agregar o eliminar un perfil con él, y no debería ser posible agregar o eliminar un perfil sin el usuario.La combinación de usuario y PerfilUsuario en el admin

que he visto fragmentos de cómo hacer este trabajo (por ejemplo, algo que le da un perfil cuando se agrega un usuario), pero no en su totalidad.

Respuesta

12

Usted puede hacer esto mediante el uso de inline admin models

antes de escribir su administrador personalizada User usted tiene que anular el registro de los ya registrados User administrador

admin.site.unregister(User) 

definir la línea UserProfile

class UserProfileInline(admin.TabularInline): 
    model = UserProfile 

y el uso el en línea en el User admin

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

Cuando hago esto, recibo varios formularios de "perfil" debajo de cada usuario, y no puedo guardar datos en él; que causa '"No se puede agregar o actualizar una fila secundaria: una restricción de clave externa falla"'. ¿Esto es porque South se equivocó o cambió las cosas el año pasado? Buscando algunas direcciones aquí, TNX. –

Cuestiones relacionadas