Django ManyToManyField自定义结构

时间:2015-11-06 16:28:53

标签: sql django django-models many-to-many django-orm

是否可以手动指定Django中ManyToManyField创建的表的结构?

我试图将Django与现有数据库集成,并希望能够使用现有表中的数据。它无法改变数据库的结构,因为这会破坏使用数据库的原始应用程序。

如果有帮助,以下是表格定义:

class People(models.Model):
    person_id  = models.CharField(db_column='PersonId', primary_key=True)
    first_name = models.CharField(db_column='FirstName')
    ...

class PersonCats(models.Model):
    category_id  = models.IntegerField(db_column='PersonCatId', primary_key=True)
    title = models.CharField(db_column='Title', max_length=50)
    ...

class PersonCatPeople(models.Model):   #No primary key on this table
    person_cat_id = models.IntegerField(db_column='PersonCatId)
    person_id     = models.CharField(db_column='PersonId')
    ...

1 个答案:

答案 0 :(得分:1)

我在模型中看不到任何ManyToMany字段,但我认为您正在寻找through的{​​{1}}选项。您可以指定要在两个相关表之间使用的自定义表,并且可以定义其结构(字段):

这里有一个例子:

ManyToManyField

这取自Django ManyToMany Docs