【发布时间】:2022-01-10 12:11:14
【问题描述】:
我收到 django.db.utils.IntegrityError: NOT NULL 约束失败:feed_like.user_id 在我的模型上。我该如何解决它
我的models.py
类喜欢(models.Model):
post = models.ForeignKey(Posts, related_name='likes', on_delete=models.CASCADE)
user = models.ForeignKey(HNUsers, related_name='likes', on_delete=models.CASCADE)
liked = models.BooleanField(default=False, blank=True, null=True)
class Meta:
verbose_name_plural = "Likes"
我的意见.py
@api_view(['GET', 'POST'])
@permission_classes((permissions.AllowAny,))
@parser_classes([FormParser, MultiPartParser])
def like_post_api(request):
if request.method == 'POST':
data = request.data
print(data)
serializer = PostLikeSerializer(data=request.data)
print("print ", serializer)
post = Posts.objects.get(id=data['post'])
print(post)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_201_CREATED)
我的 serializer.py
class PostLikeSerializer(serializers.ModelSerializer):
user = CommentUserSerializer(read_only=True, many=False)
class Meta:
model = Like
fields = (
'id',
'user',
'post',
)
【问题讨论】:
-
你能用回溯显示完整的错误信息吗?另外请修正第一个 sn-p 的格式。
-
您是否尝试在设置用户序列化程序时删除 read_only=True?
-
是的,我试过了,但如果我删除 read_only=True ,我不会得到与之相关的用户信息
-
可以添加 POSTed 数据吗?
-
是的,我可以发布数据
标签: django django-rest-framework django-views