我的模特:
class Wishlist(models.Model):
home = models.ForeignKey(Home, on_delete=models.CASCADE, null=False, blank=False)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return "{} - {}".format(self.user.username, self.home.address)
class Meta:
ordering = ('user',)
我的序列化器
class WishlistSerializer(serializers.ModelSerializer):
home = serializers.RelatedField(required=True, queryset=home_models.Home.objects.all())
user = serializers.RelatedField(required=True, queryset=User.objects.all())
class Meta:
model = Wishlist
fields = ('id', 'user', 'home',)
我的观点
class WishlistAdd(CreateAPIView):
"""
Add a new Home in User wishlist
"""
serializer_class = serializers.UserWishlistSerializer
queryset = Wishlist.objects.all()
当我尝试执行POST请求以创建新记录时,收到以下错误:IntegrityError at /user/wishlist/ NOT NULL constraint failed: user_wishlist.home_id
所有这些都是在git合并之后发生的,但是我没有注意到分支之间的任何差异
答案 0 :(得分:0)
我的猜测是git跟踪了您的sqlite数据库。这意味着每当您切换到断开的分支时,数据完整性不足都会导致此错误-即使应用程序代码完全相同。我建议将数据库文件添加到您的.gitignore
中,然后查看Django的固定装置。
答案 1 :(得分:0)
该错误表示您没有在帖子有效载荷中提供家庭ID,尽管应该在序列化程序级别上捕获此错误,因为您也在那里指定了此要求。之所以需要它,是因为您在模型字段中将其指定为不可为空的字段
home = models.ForeignKey(Home, on_delete=models.CASCADE, null=False, blank=False)
如果您不希望使用它,请指定null = True,空白= True。另外,您还需要确保房屋存在。祝你好运。