如何从具有ManyToMany字段的模型中删除关系?
我有一个具有ManyToManyField关系的模型。我需要从以下模型中删除关系,但不删除数据:
class TxHomes(models.Model):
user = models.ManyToManyField(settings.AUTH_USER_MODEL)
home_id = models.PositiveIntegerField(primary_key=True, unique=True, null=False)
name = models.CharField(max_length=255, null=True)
geo_name = models.CharField(max_length=255, null=True)
payload = models.JSONField()
Django ORM生成了表格:
-- auto-generated definition
create table main_txhomes
(
home_id integer unsigned not null primary key,
name varchar(255),
geo_name varchar(255),
...
);
create table main_txhomes_user
(
id primary key autoincrement,
txhomes_id ...,
user_id ...
);
当我用下面的代码申请时
TxHomes.objects.filter(
home_id__in=TxHomes.objects.filter(user=USER_ID).values('home_id')
,user=USER_ID).delete()
我从main_txhomes中删除了全部数据
我想保留main_txhomes表中的数据,我需要做的是从main_txhomes_user表中删除关系,怎么做?
1条答案
按热度按时间e5njpo681#
找到解决方案:
这就是我们如何为用户删除与txhomes表的所有关系