オートジャンゴの新しいteanantsの新しいユーザーを作成します。

Ytech Pythonの:

私が使用したマルチテナントのWebアプリケーションを開発しようとしているテナント・スキーマのパッケージを。すべての物事が正常に動作している、ここに1つの事は自動的に新しいテナントのための新しいユーザーを作成している欠けています。私たちは、このコマンドを使用して新しいスーパーユーザを作成することができます知っています

python manage.py tenant_command createsuperuser --schema=schema_name

しかし、私は自動的にユーザーから提供された情報に基づき、新規ユーザーを作成したいです

ここで私は、APIを使用してテナントを作成しています、

api_view.py

    def post(self, request):
        serializer = ClientSerializer(data=request.data)
        if serializer.is_valid():
            try:
                serializer.save()
                return Response(serializer.data, status=status.HTTP_201_CREATED)
            except Exception as e:
                return Response({'info': 'Unable to create tenant'})
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

テナントのためのモデル

class Client(TenantMixin):
    name = models.CharField(max_length=100)
    paid_until = models.DateField()
    on_trial = models.BooleanField()
    created_on = models.DateField(auto_now_add=True)
    auto_create_schema = True

serializers.py

from rest_framework import serializers

from .models import Client


class ClientSerializer(serializers.ModelSerializer):
    class Meta:
        model = Client
        fields = ['id', 'domain_url', 'schema_name', 'name', 'paid_until', 'on_trial', 'created_on']

ここで私は、自動的に新しいスーパーユーザを作成します。私が行う方法を知りませんでした、任意の提案をいただければ幸いです。

たJuhoルート:

あなたはジャンゴ使用することができます信号保存ポストを

models.py例えば:

from django.dispatch import receiver
from tenant_schemas.utils import tenant_context
from django.contrib.auth.models import User

@receiver(post_save, sender=Client):
def create_superuser(instance, **kwargs):
  if 'created' in kwargs: # tests if this client was created
    tenant=instance
    with tenant_context(tenant):
    # Create the superuser by using the new client tenant schema
      User.objects.create_user(
        # insert your user data here
      )

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14874&siteId=1