Ошибка Django-tenant "Нет арендатора для имени хоста"
Я смог создать схему (и подтвердил это через базу данных), но по какой-то причине я получаю ошибку Can't create tenant outside the public schema. Current schema is
при создании схемы, а также получаю эту ошибку No tenant for hostname
при попытке посетить домен арендаторов, и я не уверен, что является причиной этого. Ниже приведен мой код:
views.py
def post(self, request):
form = CreatePortalForm(request.POST)
if form.is_valid():
getDomain = form.cleaned_data.get('name')
instance = form.save(commit=False)
user_id = request.user.id
user = User.objects.get(id=user_id)
tenant = Client(schema_name=getDomain, name=getDomain, created_by=user)
tenant.save()
domain = Domain()
domain.domain = getDomain + ".example.com:8000"
domain.tenant = tenant
domain.is_primary = True
domain.save()
with schema_context(tenant.schema_name):
instance.save()
redirect = 'http://' + getDomain + '.example.com:8000'
return HttpResponseRedirect(redirect)
return render(request, "registraton/create_portal.html", {"form": form})
Например, я создал три схемы:
- арендатор1
- арендатор2
- арендатор3
Все три арендатора создали таблицы в базе данных, но я получаю ошибку Can't create tenant outside the public schema. Current schema is
при запуске вышеуказанного скрипта для создания схемы и домена или получаю No tenant for hostname
при попытке посетить домен арендаторов.
Как я уже сказал, схема создается и переносится успешно, но я все еще не могу добраться до домена domain.example.com, так как он выдает ошибку No tenant for hostname
. Есть идеи, что может быть причиной этого?
В документации django-tenants говорится, что вы не должны указывать порт для вашего домена.
Смотрите здесь