Python Django多用户模型

Python Django多用户模型,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我想创建两个自定义用户模型(profiles),其中将有一个字段,该字段具有到默认Django auth用户模型的OneToOne映射 class StudentProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) # several fields here class TeacherProfile(models.Model): user = models.O

我想创建两个自定义用户模型(profiles),其中将有一个字段,该字段具有到默认Django auth用户模型的OneToOne映射

class StudentProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # several fields here

class TeacherProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # more fields here
如果它是一个单用户配置文件模型,我可以使用信号来实现它。 我有两个表格和两个视图,每个注册一个

在执行相应的表单函数时,如何仅创建要创建的概要文件模型的对象

My views.py文件

def student_register(request):
    if request.method == "POST":
        form = StudentRegisterForm(request.POST)
        if form.is_valid(): 
            form.save() 
            return redirect('student-login')
    else:
        form = StudentRegisterForm()
    context = {'form': form}
    return render(request, 'users/student_register.html', context)

您只需在posts URL的末尾使用GET参数来指示用户注册的类型。比如说,

<form class="student-form" method=POST action=register-user?type=student>
...
</form>

# and for the teacher same url just different url GET param
<form class="student-form" method=POST action=register-user?type=teacher>
...
</form>
我应该做这项工作


希望这有帮助

您可以在表单提交视图功能中执行此操作。如何执行此操作?将视图文件添加到您的问题中。我已更新了您用于studentregisterform的模型每个表单位于不同的HTML模板上。这无关紧要。这里的方法是在提交表单时为type使用不同的get参数。
def student_register(request):
   ...
   if request.method == "POST":
      if 'type' in request.GET and request.GET['type'] == 'student':
          # do student stuff
      elif 'type' in request.GET and request.GET['type'] == 'teacher':
          # do teacher stuff
   ...