คุณต้องมีการแก้ไขเล็กน้อยใน Serializer ของคุณ:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
def save(self):
user = self.context['request'].user
title = self.validated_data['title']
article = self.validated_data['article']
นี่คือตัวอย่างการใช้ชุดมุมมองการผสมโมเดล ในcreate
วิธีนี้คุณสามารถค้นหาวิธีที่เหมาะสมในการโทรหา serializer เมธอดget_serializerเติมพจนานุกรมบริบทให้ถูกต้อง หากคุณต้องการใช้ซีเรียลไลเซอร์อื่นที่กำหนดไว้บนวิวเซ็ตโปรดดูupdate
วิธีการเริ่มต้นซีเรียลไลเซอร์ด้วยพจนานุกรมบริบทซึ่งจะส่งอ็อบเจ็กต์คำขอไปยังซีเรียลไลเซอร์ด้วย
class SignupViewSet(mixins.UpdateModelMixin, mixins.CreateModelMixin, viewsets.GenericViewSet):
http_method_names = ["put", "post"]
serializer_class = PostSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
instance = self.get_object()
kwargs['context'] = self.get_serializer_context()
serializer = PostSerializer(instance, data=request.data, partial=partial, **kwargs)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
CurrentUserDefault
อย่างแน่นอน❤️django- rest