我在我的serialiazers.py
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)
在这两种情况下,会议组织者对象都不为空,并且包含正确的值。
答案 0 :(得分:0)
您需要添加IsAuthenticated
等权限,以确保请求已通过身份验证。
否则,您将获得AnonymousUser
转换为None
,并且我假设在明确给出此参数时,模型的默认值不适用。