【发布时间】:2022-11-15 14:24:11
【问题描述】:
我想将我所有的创建、更新方法从我的视图移动到 serializer.py,我读到让你的视图变薄,而序列化器变胖。
class APIClerkView(generics.ListCreateAPIView):
permission_classes = [IsAuthenticated]
serializer_class = ClearanceItemSerialize
def perform_create(self, serializer):
serializer.save(recorded_by=self.request.user.userid)
在这里我有一个简单的创建,将当前用户用户 ID 保存到 recorded_by,我怎样才能在我的 ModelSerializer 中做到这一点
编辑:对于我的更新方法,我使用的是 instance.resolve 等...如果有两个都返回,我怎么能使它工作实例和super().create(验证数据)
def update(self, instance, validated_data):
instance.resolve = 'True'
instance.resolve_date = timezone.now()
validated_data.resolve_by = self.context["request"].user.userid
TransactionLog.objects.create(cl_itemid=ClearanceItem.objects.get(cl_itemid=instance.cl_itemid),
trans_desc="Resolve Clearance Item",
trans_recorded=timezone.now())
return instance
return super().create(validated_data)
编辑2:
def update(self, instance, validated_data):
instance.resolve_by = validated_data.get(self.context["request"].user.userid, instance.resolve_by)
instance.save()
return instance
【问题讨论】:
标签: django django-rest-framework