我还是Django和DRF的新手。我有2个模型(Policy和Rescue),Rescue通过外键policy_id与Policy相关。我没有问题发布JSON消息,并通过CreateView使用请求数据填充Policy。但是,需要根据从发布到策略的JSON数据进行的一些计算来填充第二模型Rescue。救援无法提前发布。我很努力,但没有任何线索。
这与嵌套序列化程序有关吗?
我试图
我可以这样尝试吗:在类CreateView中:
class CreateView(generics.CreateAPIView):
def create(self, request, *args, **kwargs):
my_serializer = self.get_serializer(data=request.data)
...
# get a policy object based on 'policy_id' against serializer
my_policy = Policy.objects.get(policy_id=my_serializer.data['policy_id'])
...
... # some calculations to work out a rescue id, and will be returned and saved.
Rescue.objects.create(rescue_id='QD1234', policy=my_policy)
答案 0 :(得分:0)
您可以使用通用的CreateAPIView
并覆盖perform_create方法。
def perform_create(self, serializer):
my_policy = serializer.save()
# you custom calculation for rescue_id
rescue_obj = Rescue.objects.create(rescue_id='QD1234', policy=my_policy)
执行创建方法在此处记录:https://www.django-rest-framework.org/api-guide/generic-views/#methods