Django - 列'user_id'不能为空

时间:2017-08-23 01:34:30

标签: django django-models django-rest-framework

尝试保存数据时发生错误。

列'user_id'不能为空。

以下是我用于模型的设置

class XML(models.Model):
    nome_destinatario = models.CharField(max_length=255)
    cnpj_destinatario = models.CharField(max_length=15)
    user = models.ForeignKey(User)

    def __str__(self):
        return self.nome_destinatario

串行

class XMLCreateSerializer(serializers.ModelSerializer):
    class Meta:
        model = XML
        fields = ('nome_destinatario', 'cnpj_destinatario', 'user_id')

查看

xml_create = XMLCreateSerializer(data={'nome_emitente': 'NILVA', 'cnpj_destinatario':'5645654654','user_id': 1})

        if xml_create.is_valid():
            salvo = xml_create.save()
        else:
            salvo = xml_create.errors

1 个答案:

答案 0 :(得分:1)

XML模型中的字段为user,因此在serializer中使用:

fields = ('nome_destinatario', 'cnpj_destinatario', 'user')

此外,在view中,将data传递为:

data={'nome_emitente': 'NILVA', 'cnpj_destinatario':'5645654654','user': 1}

它会起作用。始终在serializer字段中使用与您model中相同的名称。