Python Django多用户模型
我想创建两个自定义用户模型(profiles),其中将有一个字段,该字段具有到默认Django auth用户模型的OneToOne映射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
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
...