# webmaster.view
class NoticeView(APIView):
    def post(self, request):
        request.data['user'] = request.user.id
        notice_serializer = NoticeSerializer(data=request.data)
        if notice_serializer.is_valid():
            notice_serializer.save()
            return Response({"message" : "공지사항 작성에 성공했다북!"}, status=status.HTTP_200_OK)
        else:
            print(notice_serializer.errors)
            return Response({"message" : "공지사항 작성에 실패했다북..."}, status=status.HTTP_400_BAD_REQUEST)
# webmaster.test
class NoticeTest(APITestCase):
    @classmethod
    def setUpTestData(cls):
        cls.user_data = {'username' : 'heejeong', 'password': '1234'}
        cls.notice_data = {'title' : '안녕' , 'content' : '반갑습니다'}
        cls.user = UserModel.objects.create_user('heejeong', '1234')
    def setUp(self):
        self.access_token = self.client.post(reverse('token_obtain_pair'), self.user_data).data['access']
    # 공지사항 목록 조회 API 
    def test_list_notice(self):
        response = self.client.get(reverse('webmaster:list_notice'), self.data)
        self.assertEqual(response.status_code,200)
        
    # 공지사항 작성하기 API
    def test_post_notice(self):
        response = self.client.post(
            path = reverse("webmaster:notice"), 
            data = self.notice_data,
            HTTP_AUTHORIZATION = f"Bearer {self.access_token}"
            )
        self.assertEqual(response.status_code, 200)
AttributeError: This QueryDict instance is immutable
This QueryDict instance is immutable
def post(self, request):
				'''
				기존코드
        request.data['user'] = request.user.id
        notice_serializer = NoticeSerializer(data=request.data)
				'''
				print(request.data) # 테스트코드 상에서 QueryDict인 request.data에서 사용할 수 있는 메서드 확인
				request_data_copy = request.data.copy() # mutable 한 딕셔너리로 카피하는 메서드
				request_data_copy['user'] = request.user.id
				notice_serializer = NoticeSerializer(data=request_data_copy)
        ...
				생략
def post(self):
	notice_serializer = NoticeSerializer(data=request.data)
	if notice_serializer.is_valid():
		notice_serializer.save(user=self.request.user)
		return Response({"message" : "공지사항 작성에 성공했다북!"}, status=status.HTTP_200_OK)
  else:
      print(notice_serializer.errors)
      return Response({"message" : "공지사항 작성에 실패했다북..."}, status=status.HTTP_400_BAD_REQUEST)