Nay*_*ish 96 django many-to-many
如何在不删除实际对象的情况下从多对多关系中删除对象?
例:
我有模特Moods和Interest.
Mood有一个多对多的字段interests(这是一个models.ManyToManyField(Interest)).
我创建了一个Moods被调用的实例my_mood.在my_moods我的兴趣领域,我my_interest有意义
>>> my_mood.interests.all()
[my_interest, ...]
Run Code Online (Sandbox Code Playgroud)
如何my_interest在my_mood不删除任何模型实例的情况下删除?换句话说,如何在不影响相关模型的情况下删除关系?
DrT*_*rsa 161
my_mood.interests.remove(my_interest)
Run Code Online (Sandbox Code Playgroud)
注意:在执行此代码之前,您可能必须获取Django的QuerySet API的实例my_mood并my_interest使用它.
sha*_*ker 46
如果您需要删除所有M2M引用而不触及底层对象,则从另一个方向开始工作会更容易:
interest.mood_set.clear()
Run Code Online (Sandbox Code Playgroud)
Sab*_*i 9
就您而言,您只需清除关系即可
my_mood.interests.clear()
Run Code Online (Sandbox Code Playgroud)
然后,也许当您再次在序列化器中创建新关系时,您可以执行以下操作
interests = Interests.objects.get_or_create(name='Something')
my_mood_obj.tags.add(tag[0])
my_mood_obj.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68082 次 |
| 最近记录: |