我正在尝试发布测验,但出现完整性错误。
所有者字段而不是当前用户不为空
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
使用HiddenField
代替read_only=True
,请参阅:https://www.django-rest-framework.org/api-guide/validators/#currentuserdefault