我有两个模型,Contact
and User
:
class Contact(models.Model):
name = models.CharField(max_length=50, blank=True)
status = models.BooleanField(default=False)
class User(models.Model):
username = models.CharField(max_length=50, blank=True)
password = models.CharField(max_length=50, blank=True)
contact_id = models.ForeignKey(Contact, on_delete=models.CASCADE, blank=True, null=True)
对于这两个模型,我有两个序列化器类:
class ContactSerializerModel(serializers.ModelSerializer):
class Meta:
model = Contact
fields = ('name', 'status')
class UserSerializerModel(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'password','contact_id')
我想设计一个序列化器类,它需要name
, username
, password
, and status
字段。我想将它们作为键值对发布。第一的name
and status
值保存在Contact
然后模型Contact
model id
saves username
and password
in User
桌子。如何设计 Django Rest API 中的序列化器类?
你需要覆盖create
里面的方法UserSerializerModel
:
class UserSerializerModel(serializers.ModelSerializer):
contact_id = ContactSerializerModel()
class Meta:
model = User
fields = (
'username',
'password',
'contact_id'
)
def create(self, validated_data):
contact_data = validated_data.pop('contact_id')
contact = Contact.objects.create(**contact_data)
user = User.objects.create(contact_id=contact, **validated_data)
return user
查看具体信息here http://www.django-rest-framework.org/api-guide/relations/#writable-nested-serializers.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)