当我尝试通过发布以下 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)