Skip to main content
 首页 » 编程设计

python之Django 休息框架 : 'estado' is an invalid keyword argument for this function

2024年10月17日29cyq1162

我正在使用 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”模型。

请您参考如下方法:

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

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