【发布时间】:2017-07-06 11:23:11
【问题描述】:
我正在使用 Django Rest Framework 并在我的 serialiazers.py 中
class MeetingSerializer(serializers.ModelSerializer):
meeting_organiser = serializers.HiddenField(default=serializers.CurrentUserDefault())
class Meta:
model = Meeting
fields = '__all__'
我的models.py 中的Meeting 模型是这样的:
class Meeting(models.Model):
[some fields here...]
meeting_organiser = models.ForeignKey(User, default=1)
[more fields here...]
但是,当我尝试对 Meeting 模型执行 save() 时,出现此错误:
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)
在这两种情况下,会议组织者对象都不为空,并且包含正确的值。
【问题讨论】:
-
Meeting中使用的User从何而来? -
@Linovia,抱歉!我没有在我的问题中添加这个。它来自标准的 django 用户模型,并像这样导入:
from django.contrib.auth.models import User。 -
只是一个想法,尝试在外键中设置
null=True。 -
@Bhansa,我设置了
null=True,然后迁移了,但我仍然遇到同样的错误。然后我删除了迁移,再次迁移但仍然出现同样的错误。
标签: python django django-models django-rest-framework