Python m2m关系不在django中显示或保存

Python m2m关系不在django中显示或保存,python,django,django-models,many-to-many,m2m,Python,Django,Django Models,Many To Many,M2m,我正在制作django应用程序。 这大致相当于我的模型。py 我需要A和B之间的m2m关系来通过另一个模型,因为我需要在那里存储额外的数据。 现在有一个问题-当我尝试在自定义视图中保存模型a的实例时,与B实例的关系不会被保存,无论我是否选择它们。 当我转到并尝试从那里创建A的实例时,我甚至看不到用于选择与B的关系的合适字段(我想应该是) 有人能解释一下为什么不保存关系,甚至不在/admin中显示关系吗? 下面的代码大致相当于我在views.py中的代码: class A(Model):

我正在制作django应用程序。
这大致相当于我的模型。py
我需要A和B之间的m2m关系来通过另一个模型,因为我需要在那里存储额外的数据。
现在有一个问题-当我尝试在自定义视图中保存模型a的实例时,与B实例的关系不会被保存,无论我是否选择它们。 当我转到并尝试从那里创建A的实例时,我甚至看不到用于选择与B的关系的合适字段(我想应该是
) 有人能解释一下为什么不保存关系,甚至不在/admin中显示关系吗?
下面的代码大致相当于我在views.py中的代码:

class A(Model):
    to_b = ManyToManyField('B', blank=True, through='AtoB')

class B(Model):
    to_a = ManyToManyField('A', blank=True, through='AtoB')

class AtoB(Model):
    a =  ForeignKey('A', on_delete=CASCADE)
    b =  ForeignKey('B', on_delete=CASCADE)
    usr =  ForeignKey(settings.USER, on_delete=CASCADE)
    # some other fields
在URL.py中,我指定了如下附加参数:
views.Create.as\u视图(model=models.A,fields=['to\u b'])
它不起作用。如果您使用自己的manytomy中间表,则必须自己手动管理和保存对象。使用Django的内置函数是行不通的

保存
对象A
,然后保存
对象B
,然后将关系保存在
AtoB
表中(该表也是一个对象)

[…]请注意,如果您使用的是中间体 多对多关系的模型,一些相关经理的 方法被禁用,因此这些示例中的一些无法用于此类 模型


此处解释了您的错误:

请共享您尝试创建此关系的代码。谢谢。在这种情况下,制作m2m场有什么意义吗?我的意思是
to_a
to_b
字段都可以是
ForeignKey
to AtoB模型。如果我在两个类之间有一个连接,这两个类需要ObjectA related to
n
ObjectsB
,反之亦然,我会使用多个关系。从某种意义上说,多个关系只是另一个表的ForeinKey,但Django提供的抽象级别更高,管理这些对象更快、更轻松。例如,您可以使用
object\u a.批量添加对象到\u b\u set.add(*QuerySet[])
。我还想在这些字段中添加一个
相关的\u名称
,使其更简单。
class Create(CreateView):
    model = None  # A or B
    template_name = 'something.html'

    def form_valid(self, form):
        self.object = form.save(commit=False)
        form.save()
        return HttpResponseRedirect(self.get_success_url())
a_to_b = AtoB.objects.create(a=object_a, b=object_b, user=self.request.user)
print(a_to_b)