2014-03-26 80 views
0

這裏是我的代碼:如何在Django中保存與OneToOne相關的兩個模型?

from django.db import models 
    from django.contrib.auth.models import User 

    class Person(models.Model): 

     user    = models.OneToOneField(User, primary_key=True) 
     title    = models.CharField(max_length=3, choices=PERSON_TITLE_CHOICES) 
     first_name   = models.CharField(max_length=100) 

基本上,我想做的事,就是當我註冊一個新用戶,我想救一個人的模式,已經與有關的用戶。

回答

0

您有兩種選擇。您可以爲用戶註冊後保存鉤子並在那裏創建您的人員,或者您可以一起創建他們。我做後者。只要確保你在交易中包裝它們,所以如果一個失敗,另一個也是:

with django.db.transaction.commit_on_success(): 
    user = User(...) 
    user.save() 
    person = Person(user = user, ...) 
    person.save() 
相關問題