/ quiz / api / quiz /列“ owner_id”中的null值的IntegrityError违反了非null约束DETAIL

问题描述 投票:0回答:1

我正在尝试发布测验,但出现完整性错误。

所有者字段而不是当前用户不为空

serializer.py

类QuizSerializer(serializers.ModelSerializer):owner = serializers.PrimaryKeyRelatedField(read_only = True,默认= serializers.CurrentUserDefault())quiz_id = serializers.CharField(read_only = True,默认='q'+ secrets.token_hex(8))类Meta:模型=测验字段= ['quiz_id','所有者','标题','描述']

models.py

类测验(models.Model):

quiz_id = models.CharField(max_length=50,primary_key=True,null=False)
owner = models.ForeignKey(User, on_delete=models.CASCADE,null=False)
title = models.CharField(max_length=50,null=False)
description = models.TextField(max_length=200,blank=True)
timestamp = models.DateTimeField(default=timezone.now)
is_live = models.BooleanField(default=False)

views.py

python django django-rest-framework serializer
1个回答
0
投票

使用HiddenField代替read_only=True,请参阅:https://www.django-rest-framework.org/api-guide/validators/#currentuserdefault

© www.soinside.com 2019 - 2024. All rights reserved.