更新问题是,在将模型更改为允许空/空值后,我没有正确地应用迁移。在
原帖
我正在使用Django rest框架在Vimeo视频回放期间启用标记数据。我在/watchtape/videotojam/
处构建了一个端点,并使用jquery将视频的当前时间作为start_time
VideoToJam字段发送到端点。
我得到一个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'),
)
设置
blank=True, null=True
就足够了。null=True
导致架构更改,是否为其生成迁移?在如果您使用的是1.7之前的Django,并且使用的是South,那么应该运行}。在
migrate
和{如果您使用的是django1.7或更高版本,应该运行}。在
migrate
和{相关问题 更多 >
编程相关推荐