def patch(self, request, pk): story = self.get_object(pk) serializer = StorySerializer(story, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class GroupDetailSerializer(serializers.ModelSerializer): stories = StorySerializer(many=True) members = InfoSerializer(many=True) owner = serializers.CharField(source='owner.screen_name') rule = DisciplineSerializer(many=True) class Meta: model = Group fields = ('id', 'name', 'owner', 'description', 'rule', 'members', 'created_at', 'stories')
class FeedSerializer(serializers.ModelSerializer): content_object = GenericRelatedField({ Story: StorySerializer(), Character: CharacterSerializer(), Plot: PlotSerializer(), Group: GroupSerializer(), }) class Meta: model = Feed fields = ['id', 'content_object', 'created_at', 'feed_content']
def post(self, request): # Get user and unique identifier user = request.user # Create new story new_story = Story(author=user) new_story.save() # Serialize the story serializer = StorySerializer(new_story) # Return the story return Response(serializer.data, status=status.HTTP_201_CREATED)
class LikeSerializer(serializers.ModelSerializer): liked_object = GenericRelatedField({ Story: StorySerializer(), Character: CharacterSerializer(), Plot: PlotSerializer(), Writer: InfoSerializer(), }) model_name = serializers.CharField() app_label = serializers.CharField() from_user = serializers.CharField(source='from_user.screen_name') class Meta: model = Like fields = ['id', 'from_user', 'liked_object', 'model_name', 'app_label']
def get(self, request): stories = Story.objects.all() serializer = StorySerializer(stories, many=True) return Response(serializer.data)
def get(self, request, pk): story = self.get_object(pk) serializer = StorySerializer(story) return Response(serializer.data)
def get(self, request, pk, format=None): story = Story.objects.get(pk=pk) serializer = StorySerializer(story, context={'request': request}) return Response(serializer.data)
def get(self, request, format=None): story = Story.objects.all() serializer = StorySerializer(story, many=True, context={'request': request}) return Response(serializer.data)