我想在自动创建的ManyToMany连接表中存储一些附加信息.我在Django 怎么做呢?
在我的示例中,我有两个表:"Employees"和"Projects".我想存储的是每个项目中每个员工每小时的收入,因为这些值是不一样的.那么,我该怎么做呢?
我想到的不是"ManyToManyField"方法,而是显式创建第三个类/表来存储这些新信息,并使用"ForeignKey"方法设置它与"员工"和"项目"的关系.我很确定这会奏效,但这是最好的方法吗?
我想在自动创建的ManyToMany连接表中存储一些附加信息.我在Django 怎么做呢?
在我的示例中,我有两个表:"Employees"和"Projects".我想存储的是每个项目中每个员工每小时的收入,因为这些值是不一样的.那么,我该怎么做呢?
我想到的不是"ManyToManyField"方法,而是显式创建第三个类/表来存储这些新信息,并使用"ForeignKey"方法设置它与"员工"和"项目"的关系.我很确定这会奏效,但这是最好的方法吗?
以下是您想要实现的目标的示例:
http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
万一链路中断:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self): # __unicode__ on Python 2
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)