使用 rest django rest 框架创建新对象



我有以下型号

class Peri(models.Model):
    date = models.DateField()
    customer = models.ForeignKey(Customer)
class PeriTask(models.Model):
    #fields
    peri = models.ForeignKey(Peri)

我的序列化程序如下

class PeriSerializer(serializers.HyperlinkedModelSerializer):
    customer = serializers.PrimaryKeyRelatedField(read_only=True)
    class Meta:
        model = Peri
        fields = ('id', 'date', 'url', 'peritasks', 'customer')

class PeriTaskSerialiazer(serializers.HyperlinkedModelSerializer):
    tooth = serializers.PrimaryKeyRelatedField(read_only=True)
    class Meta:
        model = PeriTask
        fields = ('id', 'task_type', 'implant', 'furcation', 'bleeding1', 'bleeding2', 'bleeding3', 'plaque1', 'plaque2',
              'gingival_margin1', 'gingival_margin2', 'gingival_margin3', 'probing_depth1', 'probing_depth2',
              'probing_depth3', 'tooth', 'url', )

我的视图集是

class PeriodontogrammaViewSet(ModelViewSet):
    serializer_class = PeriSerializer
    queryset = Peri.objects.all()

class PeriTaskViewSet(ModelViewSet):
    serializer_class = PeriTaskSerialiazer
    queryset = PeriTask.objects.all()

但是当我尝试使用 api 创建一个新的 peri 时,它会给我以下完整性错误

NOT NULL constraint failed: peri_peri.customer_id

我发布的 json 数据是

{"date": "2014-12-17",
 "customer": 27
}

我还没有为客户创建序列化程序,因为我对为我的其他模型提供 api 不感兴趣。

在序列化程序中,已将客户密钥设置为 read_only

customer = serializers.PrimaryKeyRelatedField(read_only=True)

尝试将其设置为 False 或只是简单地删除整行(这对我来说似乎是多余的)

相关内容

  • 没有找到相关文章

最新更新