Pregunta rápida (probablemente insensata). Este es el flujo de mi sitio: el usuario inicia sesión y se lo redirecciona a una página de administración personalizada. En esta página de administración tienen la capacidad de hacer un 'Perfil'. Quiero asociar el perfil que crean con sus datos de usuario de modo que 1 usuario se asocie a 1 perfil.Conéctese al modelo de usuario en Django
Por alguna razón, la siguiente no está funcionando (simplemente tratando de asociar
UserAdmin.Models
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
username = models.ForeignKey(User)
firstname = models.CharField(max_length=200)
lastname = models.CharField(max_length=200)
email = models.EmailField(max_length=200)
def __unicode__(self):
return self.username
UserAdmin.Views
def createprofile(request):
user = User.objects.get(id=1)
profile = Profile(username=user, firstname='Joe', lastname='Soe', email='[email protected]')
profile.save()
sigo recibiendo: tabla useradmin_profile no tiene columna llamada usern ame_id
¿Alguna idea? Apreciado.
EDIT:
eliminado mi db y se pasó una syncdb fresca, cambió de nombre de usuario = models.OneToOneField (Usuario). Ahora obtengo la cámara No puedo asignar "u'superuser '": "Profile.nombre de usuario" debe ser una instancia de "Usuario".
Hmm, gracias. Ahora estoy obteniendo: No puedo asignar "u'John '": "Profile.username" debe ser una instancia de "Usuario". (John es User.username) – user1059105
Editado el código ... Pruébalo. Sin embargo, tendrá que hacer un nuevo syncdb. – Scalamoosh
Hmm. Bien, lo intenté con un nuevo syncdb. El shell está imprimiendo un espacio en blanco cuando intento acceder a print a.first_name donde a = User. Cuando intento acceder al objeto Profile y hago Profile.objects.all() obtengo [] impreso en lugar de full_name(). ¿Algunas ideas? –
user1059105