Python 使用django中的一个查询在关联模型中保存数据

Python 使用django中的一个查询在关联模型中保存数据,python,django,database,Python,Django,Database,我正在django项目的注册模块上工作。为了注册用户,我使用auth_user table扩展这个表,我又创建了一个模型配置文件 from django.contrib.auth.models import User class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) start_date = models.DateField() phone_nu

我正在django项目的注册模块上工作。为了注册用户,我使用auth_user table扩展这个表,我又创建了一个模型配置文件

from django.contrib.auth.models import User
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    start_date = models.DateField()
    phone_number = models.CharField(max_length=12)
    address = models.CharField(max_length=225)
    subscription = models.BooleanField(default=False)
已成功创建配置文件表。现在我想做的是,当我提交注册表时,注册表中与配置文件模型相关的字段应该在插入与auth_用户模型相关的字段后自动插入。 这意味着我不想首先在auth_用户模型中插入数据,然后在获取其id后再次在概要表中插入数据。
我想在一个查询中插入完整的记录。有可能吗?

我认为您可以定义一个注册表单,并在创建用户模型时覆盖表单
保存
方法来保存
配置文件。示例代码供您参考:

class RegistrationForm(forms.ModelForm):
    start_date = forms.DateField()
    phone_number = forms.CharField()
    address = forms.CharField()
    subscription = forms.BooleanField()

    class Meta:
        model = User

    def save(self, commit=True):
        instance = super(RegistrationForm, self).save(commit=commit)
        profile = Profile(user=instance, start_date=self.cleaned_data['start_date'], phone_number=self.cleaned_data['phone_number'], address=self.cleaned_data['address'], subscription=self.cleaned_data['subscription'])
        profile.save()
        return instance


def register(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
             user = form.save()
             # do anything after user created
        else:
             raise Error('form validate failed')
    else:
         # handling the GET method

不。你为什么要关心它是一个查询还是两个查询?我是Php开发人员,但这个项目我必须在django中完成,在Php的Cakephp框架中,我们可以只使用一个查询在关联表中插入记录,以使代码更干净和简单。对于记录,这是两个查询。