【发布时间】:2019-11-14 05:55:10
【问题描述】:
我正在使用 Django、Django Tenant Schema 和 Django Rest Framework 创建一个 SaaS 应用程序。在没有 API 的情况下一切正常,但我在通过 API 调用向不同租户发送获取请求时遇到问题。即使我指定了子域,它也会返回数据库中所有租户的用户。
但是,对无 API 端点的 get 请求可以正常工作,事实上,在 API 端点之外完成的所有操作都可以正常工作。
例如:
http://goldlimited.localhost:8000/dashboard/api/users
返回与
相同的信息http://missinglinkgm.localhost:8000/dashboard/api/users
视图是一个基本的 ModelViewSet
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.filter()
serializer_class = UserSerializer
序列化器
class UserSerializer(ModelSerializer):
class Meta:
model = User
exclude = ("password",)
还有路线
router = routers.DefaultRouter()
router.register('user', UserViewSet, 'user')
我想知道是否缺少使 DRF 与 Django Tenant Schema 一起使用的配置。
【问题讨论】:
-
我最近在使用 DRF 的项目中添加了
django-tenants,但我没有看到您描述的问题,来自一个租户的模型实例没有显示在另一个租户的响应中。我的SHARED_APPS下列出了django-rest-framework。你能发布你的MIDDLEWARE设置是什么样的吗? -
我发现我使用的是旧的 django-tenant 模式项目。我切换到有积极支持的新项目,现在工作正常。