2017-03-22 1 views
0

Ich benutze Django und neu zu programmieren. Ich möchte wissen, wie ich die Profile des Benutzers fragen kann, der OneToOne Beziehung mit Benutzermodell hat. Hier ist mein Code:Django - wie Abfrage Benutzerprofil basierend auf Benutzermodell mit OneToOneField

models.py:

class User(models.Model): 

    email = models.EmailField(unique=True, null=True) 
    date_joined = models.DateTimeField(default=datetime.now) 
    username = models.CharField(max_length=22) 

class UserProfile(models.Model): 

    user = models.OneToOneField(User, on_delete=models.CASCADE) 
    company_name = models.CharField(max_length=500) 
    contact_person = models.CharField(max_length=255) 
    country = models.CharField(max_length=100) 
    city = models.CharField(max_length=100) 

Wenn ein Benutzer der Registrierung und nach Überprüfung in seinem Profil ausfüllt. Wie kann ich die Datenbank durch views.py abfragen, die für einen bestimmten Benutzer seine UserProfile-Information ist. Beispiel: Was ist der Firmenname oder das Land für einen Benutzer mit E-Mail [email protected]

Nur nebenbei bemerkt ist dies die beste Vorgehensweise, die ich mache, um zusätzliche Informationen über Benutzer in Django zu erfassen?

Antwort

0

können Sie den Benutzer erhalten und seine Userprofile verwenden wie so:

# Make sure you create a UserProfile when you create a new User 
user = User.objects.get(email='[email protected]') 
user.userprofile.company_name 
user.userprofile.country 

Ja, das ist ein empfohlene Weg ist zusätzliche Felder auf den Standard django User-Modell hinzuzufügen. Siehe this Frage. Wenn Sie Ihr eigenes Benutzermodell verwenden, können Sie einfach die UserProfile-Felder zum Benutzermodell hinzufügen.

Verwandte Themen