Python中文
首页
教程
问答
标签
搜索
登录
注册
Django Rest按id从多到多更新
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我是python和django rest的新手。但我很困惑。在django rest框架中更新多对多关系的最佳方法是什么。 我读了文件 <a href="http://www.django-rest-framework.org/api-guide/relations/#manytomanyfields-with-a-through-model" rel="noreferrer">http://www.django-rest-framework.org/api-guide/relations/#manytomanyfields-with-a-through-model</a> 默认情况下,针对指定了直通模型的ManyToManyField的关系字段设置为只读。</p> <p>如果显式指定了一个关系字段,该字段指向带有直通模型的ManyToManyField,请确保将read_only设置为True。</p> <p>如果我有密码</p> <pre><code>class Master(models.Model): # other fields skills = models.ManyToManyField(Skill) class MasterSerializer(serializers.ModelSerializer): skills = SkillSerializer(many=True, read_only=False) </code></pre> <p>这将返回作为对象列表的技能。我没有办法更新它们。据我所知,Django在M2M方面更喜欢使用objects和object id,如果我使用yii或rails,我将使用“through”模型。我想得到技能领域。我可以读和写。我可以做这个写操作</p> <pre><code>class MasterSerializer(serializers.ModelSerializer): skill_ids = serializers.ListField(write_only=True) def update(self, instance, validated_data): # ... validated_data['skill_ids'] = filter(None, validated_data['skill_ids']) for skill_id in validated_data['skill_ids']: skill = Skill.objects.get(pk=skill_id) instance.skills.add(skill) return instance </code></pre> <p>但我不能让它返回技能。为读写操作工作。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我将尝试在设计方面带来一些启示:在Django中,如果为ManyToManyRelation指定模型,那么模型上的relation字段将变为只读。如果需要更改关联,可以直接在through模型上通过删除或注册新记录进行更改。</p> <p>这意味着您可能需要为直通模型使用完全不同的序列化程序,或者编写自定义的更新/创建方法。</p> <p>定制直通模型有一些缺陷,您确定您在ManyToManyFields的默认实现方面做得不够好吗?</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
4 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
5 回答
我是否正确理解Keras中的批次大小?
4 回答
我是否正确理解PyTorch的加法和乘法?
6 回答
我是否正确组织了我的Django应用程序?
2 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
4 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
4 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
7 回答
我是否用python安装了socks模块?
8 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
2 回答
我是否缺少spaCy柠檬化中的预处理功能?
5 回答
我是否缺少给定状态下操作的检查?
6 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
5 回答
我是否能够使用用户输入作为colorama模块中的颜色?
7 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
9 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
6 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
9 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
10 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
5 回答
我是否要使它成为递归函数?
2 回答