簡體   English   中英

縮短Python Django DB查詢

[英]Shorten a Python Django DB query

我們有EU模型之間的m2m關系:

class E(models.Model):
    us = models.ManyToManyField('U', related_name='events', symmetrical=False)

class U(models.Model):
    pass

現在我們要刪除pk = 2的U的所有鏈接。

我寫了這段代碼: U.events.through.objects.filter(u=2).delete()

可以縮短/簡化此代碼嗎?

您可以執行以下操作:

U.objects.get(pk=2).events.clear()

Django文檔中有一些有用的示例:

https://docs.djangoproject.com/zh-CN/2.0/topics/db/examples/many_to_many/

附帶說明一下,您無需在多對多定義中使用symmetrical=False 引用Django文檔:

僅用於self的ManyToManyFields的定義。

看到:

https://docs.djangoproject.com/zh-CN/2.0/ref/models/fields/#django.db.models.ManyToManyField.symmetrical

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM