Wei*_*Lin 27 python django many-to-many
从Django Book的例子中,我了解如果我创建如下模型:
from xxx import B
class A(models.Model):
b = ManyToManyField(B)
Run Code Online (Sandbox Code Playgroud)
Django将在表A之外创建一个新表(A_B),它有三列:
但是现在我想在表A_B中添加一个新列,因此如果我使用普通的SQL会很容易,但现在任何人都可以帮我怎么做?我在本书中找不到任何有用的信息.
dm0*_*514 69
使用django也很容易!您可以through用来定义自己的多个中间表
文档提供了解决您的问题的示例:
Extra fields on many-to-many relationships
class Person(models.Model):
name = models.CharField(max_length=128)
def __unicode__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __unicode__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
Run Code Online (Sandbox Code Playgroud)