我使用的是django-tenants库,其中每个租户都是一个独立的独立postgres模式。django租户模块做了很多繁重的工作,我有以下代码,每次有人注册时都会创建一个新的租户。我关心的是schema_context函数,它(成功地)在新创建的模式中创建了一个用户,但我关心的是如何登录该用户并将其重定向到customname.my-domain.com,如下所示:
class SignupView(View):
def get(self, request):
form = RegistrationForm()
return render(request, "accounts/signup.html", {"form": form})
def post(self, request, *args, **kwargs):
form = RegistrationForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
tenant = Client(domain_url=company + ".my-domain.com", schema_name=company, name=company, paid_until="2019-05-10", on_trial=False)
tenant.save()
with schema_context(tenant.schema_name):
instance.save()
# login(request, instance) - how do I login this user
# render.... and redirect them to the newly created domain e.g company.my-domain.com
return render(request, "accounts/signup.html", {"form": form})发布于 2020-04-17 04:10:48
我是Django租户的维护者。由于租户可能需要一些时间来设置,因此我建议您使用celery来创建租户。一旦设置了租户,我就会向用户发送一封电子邮件,以验证他们的帐户/租户,从而将他们带到他们的租户那里。
发布于 2020-07-06 00:22:38
我用这种方法解决了这个问题。
subdomain = form.cleaned_data["subdomain"]
host = request.META.get('HTTP_HOST', '')
scheme_url = request.is_secure() and "https" or "http"
url = f"{scheme_url}://{subdomain}.{host}"
return HttpResponseRedirect(url)https://stackoverflow.com/questions/59436447
复制相似问题