Django/Python: сигнал post_save - ожидается строка или байтоподобный объект

У меня есть сигнал post_save, который не работает с ошибкой 'ожидается строка или байтоподобный объект'. Я не уверен почему, это вызвано вызовом create_user ниже:-

Это для создания пользователя в схеме арендатора для вновь созданного арендатора:

@receiver(post_save, sender=Client)
def create_user(sender, instance, created, **kwargs):
  if created:
    tenant=instance
    with schema_context(tenant):
        name = 'name'
        email = 'name@email.com'
        password = 'passwordexample'
        user = CustomUser.objects.create_user(name, email, password)

Базовым менеджером пользователя, который выбрасывает исключение, является

def create_user(self, name, email, password, **extra_fields):
        """
        Create and save a User with the given email and password.
        """
        if not email:
            raise ValueError(_('The Email must be set'))
        name = self.normalize_email(name)
        email = self.normalize_email(email)
        user = self.model(name=name, email=email, **extra_fields)
        user.set_password(password)
        user.save()
        return user

Похоже, что это не удается при user.save() в вышеуказанном менеджере

Любая помощь или подсказки очень ценятся

Спасибо

Я думаю, что проблема, с которой вы столкнулись, не в Custom user manager, а в

 with schema_context(tenant)

поскольку этот schema_context принимает имя схемы, а не арендатора поэтому я думаю, что вам нужно передать имя схемы. или, если вы знаете арендаторов, используйте следующее вместо этого

from django_tenants.utils import tenant_context

with tenant_context(tenant):
    # All commands here are ran under the schema from the `tenant` object
Вернуться на верх