Django Rest Framework:'estado'是此函数的无效关键字参数

时间:2016-05-31 10:26:36

标签: python django django-rest-framework

我正在使用DRF,我得到了带有嵌套序列化的TypeError。我看过Documentation,但我仍无法解决问题。

型号:

class Estado(models.Model): 
    estado = models.CharField(max_length=100, blank=True)

    def __unicode__(self):
        return self.estado

class Municipio(models.Model):
    estado = models.ForeignKey(Estado)
    municipio = models.CharField(max_length=100, blank=True)

    def __unicode__(self):
        return self.municipio

class Usuario(models.Model):    
    user = models.OneToOneField(User)
    estado = models.ForeignKey(Estado)
    municipio = models.ForeignKey(Municipio) 
    donador = models.BooleanField(default=False)

    def __unicode__(self):
        return self.user.username

串行器:

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'username', 'password', 'email')

class UsuarioSerializer(serializers.ModelSerializer):
    user = UserSerializer()

    class Meta:
        model = Usuario
        fields = ('id', 'user', 'estado', 'municipio')

    def create(self, validated_data):
        profile_data = validated_data.pop('user')
        user = User.objects.create(**validated_data)
        Usuario.objects.create(user=user, **profile_data)
        return user

我正在尝试创建一个用户个人资料的“Usuario”模型。

1 个答案:

答案 0 :(得分:2)

没有对此进行测试,但您可能需要为estado设置related_name。

estado = models.ForeignKey(Estado, related_name='estado')