在django中手动创建中间表

时间:2017-03-22 22:54:19

标签: python mysql django many-to-many

我有一个包含三个表的Excel,table_a,table_a_b和table_b。

表-A id |名字

表-B id |产品

table_a_b id | a_id | B_ID

我手动创建了这些表,并通过csv将数据收集到数据库中。我的模型文件看起来像这样

class A(models.Model):
    name = models.TextField(null=True)

class Meta:
    db_table = 'As'

class B(models.Model):
    name = models.TextField(null=True)

class Meta:
    db_table = 'Bs'

class AB(models.Model):
    a = models.ForeignKey(A)
    b = models.ForeignKey(B)

class Meta:
    db_table = 'AsBs'

我这里有一个很大的问题,我无法访问特定对象A中的所有对象B.

两个问题:

1)我的方法(手动创建中间表吗?)好吗?

2)有没有办法按照我的方法获得A的B的所有对象?

1 个答案:

答案 0 :(得分:0)

你在这里有一个M2M关系,django提供了一个很棒的API来完成你想要的所有工作。

您可以访问有关M2M字段here的文档,其中详细说明了使用中间模型构建m2m的方法(表)

此处M2M through文档