django - 如何通过一个视图更新两个模型?
问题描述
我有两个模型:用户和配置文件。是否可以使用一个 PUT 请求更新这两个模型?个人资料如下所示:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile',
blank=False, null=False)
based_location = models.CharField(max_length=50, blank=True)
is_available = models.BooleanField(default=False, blank=True)
用户是 AbstractUser。
我想更新这样的请求:
{"first_name": "John",
"last_name": "Smith",
"based_location": "London",
"is_available": True,
}
解决方案
是的当然。
但是您必须put
在视图中重新加载方法并添加自定义逻辑以进行保存,或者您可以只更新方法perform_update
。
默认情况下,它看起来像:
def perform_update(self, serializer):
serializer.save()
您可以自定义逻辑来保存两个序列化程序
推荐阅读
- javascript - 现金流的日期范围
- javascript - “无法导入 useState,因为反应中没有 useState 导出”(使用 React Hooks 的流程)
- c++ - 如何计算文件中“列”的数量?
- python - 如何从字典中的多个值缩小整数?
- python - 在 Django 中抽象 API 调用的最佳方法是什么?
- python - 如何在opengl中制作坐标Y的动画
- azure-devtest-labs - 开发测试实验室工件文件命名约定
- c# - 加两位小数?C#中的LINQ结果
- python - 是否有结构化的方式来引用 Python 文档字符串中的函数参数标签?
- cordova - Azure Devops Cordova 命令从昨天开始失败