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

Python django.db.utils.IntegrityError:列中的值为null-但值不为null,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,我正在使用Django Rest框架和我的serialiazers.py class MeetingSerializer(serializers.ModelSerializer): meeting_organiser = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = Meeting fields = '__all__'

我正在使用Django Rest框架和我的
serialiazers.py

class MeetingSerializer(serializers.ModelSerializer):
    meeting_organiser = serializers.HiddenField(default=serializers.CurrentUserDefault())

    class Meta:
        model = Meeting
        fields = '__all__'
my
models.py中的
Meeting
模型如下:

class Meeting(models.Model):
    [some fields here...]
    meeting_organiser = models.ForeignKey(User, default=1)
    [more fields here...]
但是,当我尝试将
save()
保存到
会议
模型时,我得到以下错误:

django.db.utils.IntegrityError: null value in column "meeting_organiser" violates not-null constraint
我试图调试并添加到
序列化程序.py

def save(self):
    print(self.validated_data)
def save(self, *args, **kwargs):
    print(self.meeting_organiser.username)
models.py中

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

在这两种情况下,meeting Organizer对象均不为null,并且包含正确的值。

您需要添加权限,以确保请求经过身份验证


否则,您将得到一个
匿名用户
,它将转换为
,并且我假设由于明确给出了此参数,模型的默认值不适用。

会议
中使用的
用户
来自哪里?@Linovia,抱歉!我没有在问题中补充这一点。它来自标准的django用户模型,并像这样导入:
来自django.contrib.auth.models import User
。只是一个想法,试着在外键中设置
null=True
。@Bhansa,我设置了
null=True
,然后迁移了,但仍然得到相同的错误。然后我删除了迁移,再次迁移,但仍然得到相同的错误。在我的设置中,我设置了
REST\u FRAMEWORK={'DEFAULT\u PERMISSION\u CLASSES':('REST\u FRAMEWORK.permissions.IsAuthenticated',)}
,并且我已经测试过,如果我没有经过身份验证,我将无法访问API。此外,在
models.py
中,
print(self.meeting\u organizer.username)
返回正确的(非空)值。