python - Client() 得到了一个意外的关键字参数“domain_url”
问题描述
我开始使用 Django 多租户模式:https ://django-tenant-schemas.readthedocs.io/en/latest/use.html 我按照文档进行操作,但出现错误我无法创建新租户:这是我的代码:
from customer.models import Client
# im importing also other classes here
class TeamView(viewsets.GenericViewSet):
queryset = Team.objects.all()
serializer_class = TeamSerializer
def list(self, request):
objectSerializer = TeamSerializer(Team.objects.all(), many=True)
return Response(objectSerializer.data)
def create(self, request):
formSerializer = self.serializer_class(data = request.data)
if formSerializer.is_valid():
##
tenant = Client(
schema_name='tenant1',
name='Fonzy Tenant',
paid_until='2014-12-05',
on_trial=True)
tenant.save()
##
这是文档中描述的客户端
from django.db import models
from django_tenants.models import TenantMixin, DomainMixin
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)
# default true, schema will be automatically created and synced when it is saved
auto_create_schema = True
class Domain(DomainMixin):
pass
错误信息 ;
Client() got an unexpected keyword argument 'domain_url'
设置:这是我的共享和公共应用程序
SHARED_APPS = [
'django_tenants',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
# My applications
'users',
#3rd Part application
'rest_framework',
'rest_framework.authtoken',
'allauth',
'allauth.account',
'allauth.socialaccount',
'rest_auth',
'rest_auth.registration',
'webpack_loader',
'corsheaders',
'customer',
# Datacenter
'_datacenter.contact',
]
TENANT_APPS = [
'django_tenants',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
# My Applications must be inside the folder Apps and must be plural .
# While the dispather application must be inside datacenter folder
'apps.contacts',
'apps.lists',
'apps.tasks',
'apps.accounts',
'apps.documents',
'apps.teams',
]
INSTALLED_APPS = list(set(SHARED_APPS + TENANT_APPS))
解决方案
我找到了解决方案:
**from django_tenants.utils import schema_context**
**with schema_context("public"):**
tenant = Client(
schema_name='tenant1',
name='Fonzy Tenant',
paid_until='2014-12-05',
on_trial=True)
tenant.save()
推荐阅读
- javascript - 在 div 中找到第一个 pre 标记,然后删除前导空格
- math - 将十进制数转换为浮点表示法和 IEEE 754 格式
- loops - 脚本未通过所有迭代运行,并陷入循环
- angular - 按照角度教程,重定向似乎是附加页面而不是替换
- python - 使用 dict 和 set 从列表中删除重复项之间的区别?
- autodesk-forge - 无需 Revit Desktop 应用程序即可直接访问 Revit DB API 以提取和更新属性
- python - 如何在python中编码IP地址?
- mysql - MySQL查询以将同一月份的订单数填充为输入表的每一行中的单独列
- instagram - 请求 Instagram 应用程序来验证我们的网站用户
- r - 更改默认调色板的填充/颜色美学方向