drf

유저 : 정산정보
1 : 1 관계

정산 정보 : 정산 계좌
1 : 다 관계

models.py


class 정산정보 모델(models.Model):
	user = models.OneToOne(User, on_delete=models.CACADE ...)
    email = models.EmailField()
    
    
class 정산계좌 모델(models.Model):
	정산정보 = models.ForeignKey(정산정보모델, on_delete=models.CACADE ...)
    account_number = models.CharField('계좌번호', ...)

serializers.py

class 정산정보CreateSerializer:
	정산 계좌 = 정산계좌CreateSerializer(many=True, required=False)
   	class Meta:
    model = 정산계좌
    fields = (  ... )
    
    @transaction.atomic()
    def create(self, validated_data):
    	# 각자 모델에 필요한 데이터끼리 깔끔하게 정리하자!!!!!!!
    	정산계좌_data = validated_data.pop('정산계좌_data')
        
        
        # 생성!!!!!!!!
        # get_or_create 로 다시 만들기를 하였을 때 버그가 안나게 할 수 있지만
        # 일부러 업데이트 방향으로 이끌기 위해 버그를 만들어 주었다.
        정산정보_instance = 정산정보모델.objects.create(
        	...
        )
        
        if 정산계좌_data:
        	for 계좌정보 in 정산계좌_data:
            	정산계좌모델.objects.create( ... )
        
        # 출력!!!!!
        return 정산정보_instance
    

views.py


class 정산정보APIView(generics.ListCreateAPIView):
	    if self.request.method == 'GET':
            return 정산정보serializer
        elif self.request.method == 'POST':
            return 정산정보CreateSerializer

좋은 웹페이지 즐겨찾기