Anda perlu sedikit pengeditan di serializer Anda:
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']
Berikut adalah contoh, menggunakan Model mixing viewsets. Dalam create
metode, Anda dapat menemukan cara yang tepat untuk memanggil serializer tersebut. Metode get_serializer mengisi kamus konteks dengan benar. Jika Anda perlu menggunakan serializer yang berbeda kemudian ditentukan di viewset, lihat update
metode tentang cara memulai serializer dengan kamus konteks, yang juga meneruskan objek permintaan ke serializer.
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
benar-benar ❤️ django-rest-framework.org/api-guide/validators/…