首页 > 解决方案 > 您不能更改 m2m 字段或从 m2m 字段更改或通过 =onmn2m 字段添加或删除

问题描述

这是什么错误:您无法更改 m2m 字段或从 m2m 字段更改或通过=on m2m 字段添加或删除

Class post(models.Model):
 Title=models.CharField(max_length=50)

Class cat_child(midels.Model):
 name=models.CharField(max_length=50)
 post=models.ManyToManyField(Post)
 cat_parent=models.ForeignKey('Cat_Parent',on_delete=models.CASCADE)
Class cat_parent(models.Model):

名称=models.CharField(max_length=50)

这是为什么?

标签: django

解决方案


Django默认创建一个中间表,但是如果你想手动指定一个你必须通过ManyToManyField来完成(指中间表)

class Category(models.Model):
    Name=models.CharField(max_length=50)
    post=models.ManyToMany(Post, through='PostCat')

然后像以前一样指定中间表。

唯一的变化是through = 'PostCat'在 ManyToMany 中添加 PosCat 是引用的中间表。

您可以在文档中找到更多信息,但基本上这就是解决方案: https ://docs.djangoproject.com/en/2.1/topics/db/models/


推荐阅读