【发布时间】:2020-11-12 08:09:28
【问题描述】:
我正在使用 python django 做一些基本的 CRUD 应用程序。基本上,我想从前端发送一些原始文本数据,后端会捕获它,然后重新发送清理过的数据。 目前,clean 方法有效,但由于某种原因,它仍然向前端发送相同的原始文本。
这是我的代码:
在models.py中:
class Post(models.Model):
content = models.TextField(max_length=3000, blank=False, default='')
在 serializers.py 中:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'content')
在views.py中:
@api_view(['PUT'])
def create_post(request):
if request.method == 'PUT':
post_data = JSONParser().parse(request)
post_serializer = PostSerializer(data = post_data)
if post_serializer.is_valid():
data_to_clean= str(post_serializer.data['content']) # this is raw text (i.e: "aBcD")
cleaned = clean(data_to_clean) # this is text after cleaning (i.e: "abcd")
post_serializer.data['content'] = cleaned # update the new text
return JsonResponse(post_serializer.data, status = status.HTTP_200_OK)
return JsonResponse(post_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
你能指出这段代码有什么问题吗?非常感谢。
【问题讨论】:
-
我猜你需要打电话给
post_serializer.update()