带外键的序列化器 - GET 和 POST

2023-12-20

我目前有一个带有外键字段的模型序列化器。我想要一个序列化对象的相关模型,而不仅仅是一个 ID。我知道这可以通过为相关模型创建序列化器并执行

related_field = RelatedFieldSerializer()

但是,当主对象发生创建/更新时,如何处理?例如。我想创建主对象的实例,但相关字段将作为对象(而不是 pk)发送,并且不会引用现有的外键,它将尝试创建一个新对象。

希望这是有道理的


如果您不想创建现有对象,您可以在利用时执行类似的操作PrimaryKeyRelatedField据记录here http://www.django-rest-framework.org/api-guide/relations/#primarykeyrelatedfield.

models.py

class Model1(models.Model):
    time = models.DateTimeField(auto_now=True)

class Model2(models.Model):

    model1= models.ForeignKey(Model1, on_delete=models.CASCADE)
    f1 = models.FloatField()

那么你的serializers.py看起来像:

class Model2Serializer(serializers.ModelSerializer):
    model1 = serializers.PrimaryKeyRelatedField(
        read_only=False, queryset=Model1.objects.all())

    class Meta:
        model = Model2
        fields = (
            'model1',
            'f1',
        )

然后就可以针对pk现有的价值Model1数据库中的值。请注意,您可以使用除pk值(如果需要)。看这个帖子 https://stackoverflow.com/questions/47974094/django-rest-framework-serializer-access-existing-foreign-key.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带外键的序列化器 - GET 和 POST 的相关文章

随机推荐

  • SWIFT 2:多行 MKPointAnnotation

    有没有办法创建多行注释 这是我的代码 1 我的customAnnotation类 import UIKit import MapKit class CustomAnnotation NSObject MKAnnotation var tit
  • Cloud Firestore 安全规则:如何检查属性是否存在?

    我需要检查商店文档中是否存在属性 allow update delete if resource data uid 在上面的代码中我有错误 属性 uid 在对象上未定义 所以我如何检查是uid在数据中 要检查文档是否包含特定字段 我使用in
  • 编程术语 - 字段、成员、属性 (C#)

    我试图找到这些术语的含义 但特别是由于语言障碍 我无法理解它们的用途 我假设 字段 在类中是变量 也是对象 而 属性 只是一个返回特定值且不能包含方法等的对象 通过 成员 我理解在类级别声明的任何对象 但这些只是我基于注释代码示例的假设 其
  • 如何在角度中默认选择垫按钮切换

    如何设置默认选择切换组中的最后一个按钮 这是我的代码
  • 通过裁判?

    我仍然对通过裁判感到困惑 如果我有一个 Cache 对象 我想访问 可供多个对象使用 并且我使用构造函数注入来注入它 我希望它影响我创建的单个缓存对象 例如 public class Cache public void Remove str
  • HTC One M7 上的语音识别器

    我使用 android 的内置语音识别类编写了一个语音识别应用程序 当对使用 createSpeechRecognizer context 函数获取的语音识别器对象调用 startListening 函数时 我的开发人员控制台中会出现以下异
  • Jquery 确认示例

    我想要更多关于 jquery 确认框的示例 我通过下面的例子学会了如何显示确认对话框 http www webstuffshare com 2010 03 jquery plugin jconfirmaction http www webs
  • Laravel 对象到数组

    我尝试了一段时间使用数组而不是集合 就像 Laravel 那样 我尝试执行此方法 但没有成功 Event listen StatementPrepared class function event event gt statement gt
  • foreach 中的 Javascript setTimeout:需要帮助创建闭包

    我有这个功能 notes forEach function note setTimeout function playNote note 1000 这是行不通的 它会同时播放所有音符 而不是按顺序播放 中间间隔 1 秒 看起来我需要在这里关
  • C++ 11 线程,错误调用纯虚函数

    这是我正在尝试编译的一个非常小的 C 11 Thread API 代码 include
  • Gulp 4 使用 Gulp-Hub 将任务拆分到多个文件由于缺少 Get 函数而失败

    使用 Gulp 4 和recipe https github com gulpjs gulp blob 4 0 docs recipes split tasks across multiple files md使用 gulp hub 将我的
  • 为链接列表或任何类型的列表添加侦听器

    我有一个链接列表 我只想监听任何更改 例如添加到链接列表中的内容 最好的方法是什么 您可以尝试 ObservableCollection See http commons apache org dormant events apidocs
  • 选择两列的组合,并计算该组合的出现次数

    我有一个包含问题的表 其中每一行都是一个问题 所有问题都有一个 questions by 和answer by 字段 我想选择 提问者 和 回答者 的所有独特组合 并计算这种提问 回答组合发生的次数 question tbl id aske
  • 如何使用 ZMQ 发送/接收通过 Protocol Buffers 序列化的二进制数据

    我需要在 ZMQ 套接字上发送一个对象 用 GPB 序列化 目前该代码有一个额外的副本 如何直接将序列化数组写入message ts data ABT CommunicationProtocol introPacket Fill the p
  • 如何获取特定时间段内所有推文的样本?

    我想收集去年所有推文的样本 能够请求特定日期的推文固然很棒 但我会尽力而为 我不想查找特定用户的推文或包含特定术语的推文 而只是查找所有推文的样本 这推特搜索 API http apiwiki twitter com w page 2255
  • 使用 jna 进行 keyhook 和消费

    我正在制作一个自动点击器 它使用 jna 来挂钩来自键盘和鼠标的全局输入 对于我使用的键盘挂钩http code google com p goldriver source browse trunk king src jnacontrib
  • 使用选项保护 Office 脚本中的工作表

    如何保护工作表但允许用户在 Office 脚本中设置列格式 我尝试了一些方法 但没有取得任何成功 function main workbook ExcelScript Workbook let sheet workbook getWorks
  • 我可以在没有事务的情况下通过 sqlalchemy 执行查询吗

    我正在尝试使用 sqlalchemy 在 Mysql 数据库上执行存储过程 它在 shell 中运行良好 但抛出此错误 OperationalError MySQLdb exceptions OperationalError 1568 Tr
  • git log 单行 -L 而不显示差异或补丁?

    我试图弄清楚文件中的一行是在哪一点被引入的 以及它在哪一次提交中被更改的 我可以查看这些行的历史记录 文件 example txt 中的第 10 行 git log L 10 11 example txt 但是 对于每个日志条目 它都包含一
  • 带外键的序列化器 - GET 和 POST

    我目前有一个带有外键字段的模型序列化器 我想要一个序列化对象的相关模型 而不仅仅是一个 ID 我知道这可以通过为相关模型创建序列化器并执行 related field RelatedFieldSerializer 但是 当主对象发生创建 更