我正在使用Django使用django-tenant-schemas构建一个Web应用程序。我试图完成以下任务:
主域名上的用户注册,example.com
在后台,test.example.com创建了一个租户,该租户的用户
用户被重定向到他的新子域test.example,并自动登录
我无法弄清楚如何记录用户。这是注册视图:
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
webshop = Tenant()
webshop.domain_url = form.cleaned_data['name'] + '.localhost'
webshop.schema_name = form.cleaned_data['name']
webshop.save()
with schema_context(form.cleaned_data['name']):
f = form.cleaned_data
user = CustomUser.objects.create_user(f['email'], f['password'], f['user_name'])
send_registration_confirmation(user, form.cleaned_data['name'])
redirect = 'http://' + form.cleaned_data['name'] + '.localhost:8000'
return HttpResponseRedirect(redirect)
else:
form = RegistrationForm()
return render(request, 'register.html', {'form': form,})
如果我使用Django中的authenticate
和login
函数,则用户将登录主域,但不会登录子域。