小编Red*_*fox的帖子

Django REST Framework NOT NULL 约束失败

当我尝试通过发布以下 JSON 创建新帖子时:

{
    "text": "test",
     "location": 1
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NOT NULL constraint failed: grapevineapp_post.location_id
Run Code Online (Sandbox Code Playgroud)

模型.py:

class Location(models.Model):
    name = models.CharField(max_length=80)
    created = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.name

class Post(models.Model):
    text = models.CharField(max_length=512)
    owner = models.ForeignKey('auth.User', related_name='posts', on_delete=models.CASCADE)
    location = models.ForeignKey(Location, related_name='posts', on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.text
Run Code Online (Sandbox Code Playgroud)

视图.py:

class PostList(generics.ListCreateAPIView):
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
    queryset = Post.objects.all()
    serializer_class = PostSerializer
    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)

class PostDetail(generics.RetrieveUpdateDestroyAPIView):
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
    queryset = Post.objects.all()
    serializer_class = PostSerializer
Run Code Online (Sandbox Code Playgroud)

序列化器.py

class PostSerializer(serializers.Serializer): …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

2
推荐指数
1
解决办法
4986
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1