আপনার সিরিয়ালাইজারে আপনার একটি ছোট সম্পাদনা দরকার:
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
একেবারে j django-rest-framework.org/api-guide/uthorators/…