我刚认识 Django 。
我想打一个单一的API,将选择数据从两个不同的模型,并将数据保存在一些其他的表。
Model1.objects.filter(
id__in={x.id for x in self.request.user.user_modules})
Model2.objects.filter(
organization=self.request.user.organization
)
根据从Model1和Model2中选择的数据,我想将其保存在第三个表中。
e.g. obj = Model3(data1=data1_selected, data2=data2_selected)
如何通过编写单个ModelViewSEt来实现这一点?
1条答案
按热度按时间wxclj1h51#
您可以通过在ModelViewSet中创建一个自定义create方法,并执行必要的逻辑从两个模型中选择数据,然后将其保存到该方法中的第三个模型中来完成此操作。
下面是一个自定义create方法的示例:
class MyModelViewSet(ModelViewSet): ... def create(self, request, *args, **kwargs): data1_selected = Model1.objects.filter( id__in={x.id for x in self.request.user.user_modules}) data2_selected = Model2.objects.filter( organization=self.request.user.organization) obj = Model3(data1=data1_selected, data2=data2_selected) obj.save() return Response(status=status.HTTP_201_CREATED)
在上例中,create方法覆盖ModelViewSet的create方法,执行数据选择并将其保存在第3个表中