python - Django perform_update 不更新条目
问题描述
我有一些通用的 DRF API 视图:
class PageCreateView(generics.CreateAPIView):
queryset = Page.objects.all()
serializer_class = PageSerializer
def perform_create(self, serializer):
text = self.request.data.get("text")
json = generate_json(text)
calculated_level = level_calculate(json)
serializer.save(json=json, calculated_level=calculated_level)
instance = super().perform_create(serializer)
class PageView(generics.RetrieveUpdateDestroyAPIView):
queryset = Page.objects.select_related().all()
serializer_class = PageSerializer
def perform_update(self, serializer):
text = self.request.data.get("text")
json = generate_json(text)
calculated_level = level_calculate(json)
serializer.save(json=json, calculated_level=calculated_level)
instance = super().perform_update(serializer)
perform_create 完美运行。
但是 perform_update 似乎没有。我应该对实例或 self 对象做一些不同的事情,以便它更新有问题的对象吗?
生成 JSON 和计算级别都是依赖的元数据,但我不想包含在 POST 或 PUT 请求中。它们需要在每次保存时重新计算/重新生成。
页面序列化器:
class PageSerializer(serializers.ModelSerializer):
image = Base64ImageField(max_length=None, use_url=True)
category = serializers.PrimaryKeyRelatedField(
many=False, queryset=Category.objects.all())
class Meta:
model = Page
fields = ['date', 'intro', "text", "english",
"calculated_level", "json", "id", "category", "title", "image", "published", "premium"]
解决方案
推荐阅读
- mongodb - 在 mongodb 中加入两个具有选定字段和 where 子句的表
- node.js - 加入和离开聊天的正确 http 方法是什么
- scikit-learn - 结合两种机器学习算法以实现更高的预测准确性
- excel - INDEX 组合两列,其中一列跨越多行
- c# - 如何在检查员的脚本上设置预制子组件?
- php - SQL/PHP 在多个图像表上连接产品表
- jquery - Django 和 ajax 函数
- swift - 缺少 Swift 语言版本 3.2
- javascript - Javascript 生成的 HTML-Table 无缘无故地产生“未定义”
- python - 创建填充数组本身索引的numpy数组