在我的ModelViewSet中,我试图排除我的租户字段,以防止用户看到租户id(来自django-simic-Multitenant)。但是,我不能开发通用的ModelSerializer,因为我总是需要在ModelSerializer类中定义模型Meta。我的源代码,工作(非通用)如下。我想实现以下任一选项:
>
序列化器的工作原理是拾取实际的类模型,而不需要在序列化器的元类中指定模型
在默认的\u MODEL\u Serializer\u类中设置我的序列化程序,并使其工作(同样,不在序列化程序的元类中指定模型)
它在下面工作得很好,但是当我在DEFAULT_MODEL_SERIALIZER_CLASS中分配序列化器时,它似乎不起作用。
class ExcludeTenantSerializer(serializers.ModelSerializer):
class Meta:
model = Product
exclude = ('tenant', )
class ProductViewSet(viewsets.ModelViewSet):
model = Product
ordering = ('id', )
serializer_class = ExcludeTenantSerializer
def get_queryset(self):
tenant = get_current_tenant()
if tenant:
return self.model.objects.filter(tenant=tenant)
else:
return self.model.objects.none()
我已经找到了这样做的方法。就是在get_serializer_class函数中动态创建一个类。为了使这个通用,我写了一个从ModelViewSet扩展的类,并拥有所有我将通过Django REST框架公开的多租户感知类来子类化它。
class TenantViewSet(viewsets.ModelViewSet):
def __init__(self, **kwargs):
self.serializer_class = None
super(TenantViewSet, self).__init__(**kwargs)
def get_serializer_class(self):
if self.serializer_class is not None:
return self.serializer_class
class ExcludeTenantSerializer(serializers.ModelSerializer):
class Meta:
model = self.model
exclude = ('tenant', )
self.serializer_class = ExcludeTenantSerializer
return self.serializer_class
def get_queryset(self):
tenant = get_current_tenant()
if tenant:
return self.model.objects.filter(tenant=tenant)
else:
return self.model.objects.none()
当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克
我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代
本文向大家介绍JSP通用分页框架,包括了JSP通用分页框架的使用技巧和注意事项,需要的朋友参考一下 写一个通用的分页框架,这样在项目里面如果想实现分页功能,只需要稍加改动参数就可以实现分页处理了。这样写了会节省很多时间。 一.分页类 既然要分页那么我们就要考虑建一个通用的分页类,里面需要的参数一般有: 总页数 totalPage 总共记录数 totalRecord 每页显示数 pageSize 当
我正在学习Django和Django REST框架。我正在尝试执行API并添加查看权限。 来自django。db从django导入模型。contrib。auth。模型导入用户 我的模特: 我的连载者: 我的看法: 当我尝试添加新“word”时-显示错误: 序列化程序或视图中存在问题?如何修复?
通用信息系统框架诞生的目的,是帮助企业开发信息系统之初快速搭建起系统基本框架,可以节省精力财力和时间,加快开发进度。 通用信息系统框架包括服务端和客户端两个部分,其中服务端部分完成了整合Spring+Struts2+mybatis技术,客户端包括系统登录,系统主页(其中有菜单展现、多种功能导航、登录用户信息修改等),多种功能导航实现了菜单树、Tab栏、对象树等,以后可以继续丰富,还有通用的权限管理
exception$10(errorcode.java:88)在org.axonframework.axonserver.connector.errorcode.convert(errorcode.java:182)在org.axonframework.axonserver.connector.command.command.command.axonservercommandbus$1.onnex