drf

6047 ワード

プレイヤー:決済情報
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