save()上的Django Rest Framework完整性错误,返回tru

2024-09-30 14:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

更新问题是,在将模型更改为允许空/空值后,我没有正确地应用迁移。在

原帖 我正在使用Django rest框架在Vimeo视频回放期间启用标记数据。我在/watchtape/videotojam/处构建了一个端点,并使用jquery将视频的当前时间作为start_timeVideoToJam字段发送到端点。 我得到一个django.db.utils.IntegrityError: player_list_videotojam.video_id may not be NULL 当视图调用serializer.save()时引发异常,即使serializer.is_valid()返回True。在

我不确定我做错了什么,因为视频外键关系是用blank=True, null=True创建的,并且序列化程序表示法表明视频不是必需字段。在

这似乎与IntegrityError in django rest framework有关 但是,将video = serializers.PrimaryKeyRelatedField()添加到序列化程序的修复会引发AssertionError: Relational field must provide a查询集{},当我设置read_only=True时,IntegrityError异常返回。在

任何帮助都将不胜感激。在

序列化程序

class VideoToJamSerializer(serializers.ModelSerializer):
    class Meta:
        model = VideoToJam
        fields = ('id', 'start_time', 'end_time', 'video', 'jam', 'timecode_url')

型号

^{pr2}$

查看

@api_view(['GET', 'POST'])
def viewvideotojam_list(request):
    if request.method == 'POST':
        serializer = VideoToJamSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    videotojams = VideoToJam.objects.all()
    serializer = VideoToJamSerializer(videotojams, many=True)
    return Response(serializer.data)

网址

urlpatterns = patterns('',
    url(r'^videotojam/$', views.viewvideotojam_list, name='videotojam_list'),
    )

Tags: 程序truedata视频return序列化responserequest
1条回答
网友
1楼 · 发布于 2024-09-30 14:32:50

设置blank=True, null=True就足够了。null=True导致架构更改,是否为其生成迁移?在

如果您使用的是1.7之前的Django,并且使用的是South,那么应该运行migrate和{}。在

如果您使用的是django1.7或更高版本,应该运行migrate和{}。在

相关问题 更多 >