Domanda rapida (probabilmente folle). Questo è il flusso del mio sito: l'utente accede e viene reindirizzato a una pagina di amministrazione personalizzata. In questa pagina di amministrazione hanno la possibilità di creare un "profilo". Voglio associare il profilo che creano con i loro dati utente in modo tale che 1 utente si associ a 1 profilo.Connessione a modello utente in Django
Per qualche ragione la seguente non funziona (semplicemente cercando di associare
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()
continuo a ricevere: table useradmin_profile non ha una colonna denominata usern ame_id
Qualche idea? Apprezzato.
EDIT:
eliminato il mio db e si passò una syncdb fresco, cambiato a username = models.OneToOneField (Utente). Ora ricevo Impossibile assegnare "u'superuser": "Profile.username" deve essere un'istanza "Utente".
Hmm, grazie. Ora sto ottenendo: impossibile assegnare "u'John" ":" Profile.username "deve essere un'istanza" User ". (John è un utente.nomeutente) – user1059105
Modificato il codice ... Prova. Dovrai fare un nuovo syncdb però. – Scalamoosh
Hmm. Va bene provato con un nuovo syncdb. La shell stampa uno spazio vuoto quando provo ad accedere a print a.first_name dove a = User. Quando provo ad accedere all'oggetto Profile e faccio Profile.objects.all() ottengo [] stampato invece di full_name(). Qualche idea? –
user1059105