django.db.utils.IntegrityError:列中的null值 - 但值不为null

时间:2017-07-06 11:23:11

标签: python django django-models django-rest-framework

我在我的serialiazers.py

中使用Django Rest Framework
class MeetingSerializer(serializers.ModelSerializer):
    meeting_organiser = serializers.HiddenField(default=serializers.CurrentUserDefault())

    class Meta:
        model = Meeting
        fields = '__all__'

Meeting中的models.py模型如下:

class Meeting(models.Model):
    [some fields here...]
    meeting_organiser = models.ForeignKey(User, default=1)
    [more fields here...]

但是,当我尝试对save()模型Meeting时,我收到此错误:

django.db.utils.IntegrityError: null value in column "meeting_organiser" violates not-null constraint

我尝试调试并添加到serializers.py

def save(self):
    print(self.validated_data)

models.py

def save(self, *args, **kwargs):
    print(self.meeting_organiser.username)

在这两种情况下,会议组织者对象都不为空,并且包含正确的值。

1 个答案:

答案 0 :(得分:0)

您需要添加IsAuthenticated等权限,以确保请求已通过身份验证。

否则,您将获得AnonymousUser转换为None,并且我假设在明确给出此参数时,模型的默认值不适用。