gpt4 book ai didi

python - 用户不存在并且没有重定向到 django 项目中创建的租户

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:51 24 4
gpt4 key购买 nike

我在 django 1.11 中有一个应用程序,我使用 django-tenant-schemas ( https://github.com/bernardopires/django-tenant-schemas ) 为用户创建一个帐户。创建客户端、架构和domain_url 后,用户不会重定向到domain_url 中给定的地址。

例如:我的表单中有domain_url = test.localhost。创建帐户后,我仍然在 localhost 而不是 test.localhost。

当我转到 test.localhost 时,我会看到一个登录面板。我使用创建时提供的数据登录,但收到一条消息要求输入正确的数据。我使用 shell 检查数据库 - 用户存在。

用户使用foreignkey连接到公司。

账户/view.py

def signup(request):
if request.method == 'POST':
company_form = CompanyForm(request.POST, prefix='company')
user_form = SignUpForm(request.POST, prefix='user')

if company_form.is_valid() and user_form.is_valid():
company_form.instance.name = company_form.cleaned_data['name']
company_form.instance.domain_url = company_form.cleaned_data['name'] + '.localhost'
company_form.instance.schema_name = company_form.cleaned_data['name']
company = company_form.save()
user_form.instance.company = company
user = user_form.save()
auth_login(request, user)
return HttpResponseRedirect(reverse('post:post_list'))
else:
company_form = CompanyForm(prefix='company')
user_form = SignUpForm(prefix='user')
args = {}
args.update(csrf(request))
args['company_form'] = company_form
args['user_form'] = user_form
return render(request, 'accounts/signup.html', args)

创建公司和用户的表单:

class CompanyForm(forms.ModelForm):
name = forms.CharField(label='Company', widget=forms.TextInput(attrs={'autofocus': 'autofocus'}))

class Meta:
model = Company
fields = ('name',)


class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, required=True, widget=forms.EmailInput())

class Meta:
model = User
exclude = ('company', )
fields = ('email', 'password1', 'password2', )

最佳答案

回复:用户不存在错误 -根据您的注册 View 功能,用户记录正在公共(public)模式中创建。但是,当您尝试登录 test.localhost 时,test 架构将用于所有数据库查询。您可以切换架构,例如 -

from tenant_schemas.utils import schema_context

with schema_context(customer.schema_name):
# create your user here.

关于python - 用户不存在并且没有重定向到 django 项目中创建的租户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55012639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com