2
어떻게 DRF에서 관련 객체를 직렬화 할 수 있습니까? 3 가지 모델 auth_user (User), ModelA, ModelB를가집니다.장고 레스트 프레임 워크에서 관련 객체 직렬화
내 모델 :
class ModelA(models.Model):
user = models.OneToOneField(auth_user, related_name = 'modelA')
name = models.CharField(max_length = 30)
class ModelB(models.Model):
owner = models.OneToOneField(auth_user)
user = models.OneToOneField(auth_user, related_name = 'modelB')
type = models.ForeignKey(ModelD)
cost = models.IntegerField()
class ModelD(models.Model):
type_desc = models.CharField(max_length = 40)
내 serialilzers : 나는 때마다 지을 수 있었던이 '전용 이메일을 얻는 POST 요청을하고
data = {'email':'[email protected],
'password' : 'dummy',
'userA' : {'name' :'123'},
'userB':{'type':1,'cost':'100'}
을 통과하고있어
class A(serializers.ModelSerializer):
class Meta:
model = ModelA
fields = ('name',)
class B(serializers.ModelSerializer):
class Meta:
model = ModelB
fields = ('type', 'cost',)
class AuthUserSerilaizer(serializers.ModelSerializer):
userA = serializers.RelatedField(source = 'modelA')
userB = serializers.RelatedField(source = 'modelB')
class Meta:
model = User
fields = ('email', 'password', 'userA', 'userB',)
write_only_fields = ('password',)
@transaction.commit_manually
def restore_object(self, attrs, instance = None):
try:
user = User.objects.create_user(email = attrs.get('email'), password = attrs.get('password'))
modela = ModelA(user =user, name = attrs.get('name'))
modela.save()
transaction.commit()
return User(email = attrs.get('email'))
except Exception ,e:
transaction.rollback()
print repr(e)
JSON과 userA와 userB가 아닌 패스워드 왜? 각 테이블에서 데이터를 순차적으로 비 직렬화 및 생성 할 수 있습니까?
당신이 POST 요청 코드를 포함 할 수 있습니다 사용하여 액세스 할 수 있습니까? – WAF
@WAF는 아약스를 통해 요청을하고 있습니다. 기능을 복사 해 주시겠습니까? – mithu