Django передает идентификатор пользователя до отправки формы
Я работаю над приложением Django-Tenant (Multi-Tenant). Я пишу скрипт для создания поддомена. Я пытаюсь сделать так, чтобы created_by
был установлен на идентификатор текущего пользователя, который вошел в систему. Как я могу получить ID текущего пользователя для заполнения поля created_by
?
views.py
class CreatePortal(View):
def get(self, request):
form = CreatePortalForm()
return render(request, "registration/create_portal.html", {"form": form})
def post(self, request):
form = CreatePortalForm(request.POST)
if form.is_valid():
getDomain = form.cleaned_data.get('name')
instance = form.save(commit=False)
tenant = Client(schema_name=getDomain, name=getDomain, created_by=**[NEED USER ID HERE]**)
tenant.save()
domain = Domain()
domain.domain = (getDomain + ".example.com:8000")
domain.tenant = tenant
domain.is_primary
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})
forms.py
class CreatePortalForm(forms.ModelForm):
class Meta:
model = Client
fields = ["name"]
models.py
Вот строка, в которой я работаю с models.py
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
Я также получаю ошибку, если это не тип User и если я не передаю фактическое число для id, Field 'id' expected a number but got datetime.datetime
Я тоже пробовал это:
user = request.user.id
tenant = Client(schema_name=getDomain, name=getDomain, created_by=user)
но затем получаем эту ошибку:
Cannot assign "1": "Client.created_by" must be a "User" instance.
Я не уверен, как передать ID текущего вошедшего пользователя для заполнения поля формы created_by
. Любая помощь будет принята с благодарностью. Я все еще изучаю Django.