与 Django 的多对多关系,Python
Many to many relationship with Django, Python
目前我正在开发一个应用程序来管理用 Django 编写的汽车和事件的驱动程序,Python。
我有两个模型:
class Vehicle(models.Model):
name = models.CharField(max_length=100)
max_capacity = models.IntegerField(default=2)
available = models.BooleanField()
class Event(models.Model):
start_timestamp = models.DateTimeField()
end_timestamp = models.DateTimeField()
description = models.TextField()
location = LatLonField()
我保存了 10 种不同的车辆。
有 18 个不同的事件。
现在我想为一个事件添加多个车辆而不为每个事件生成新车辆,并指定将在该事件中使用这辆车的人数,例如:
Event 0815:
- FirstCar, loaded with 5/13 People
- SecondCar, loaded with 2/2 People
(汽车的最大容量在其型号中给出)
这与djangos数据库概念的结构怎么可能?
您可以创建一个 intermediate table 并使用 ManyToMany
字段的 through
参数:
class Event(models.Model):
...
vehicles = models.ManyToManyField(Vehicle, through='EventVehicle')
class EventVehicle(models.Model):
event = models.ForeignKey(Event)
vehicle = models.ForeignKey(Vehicle)
loaded = models.IntegerField(default=2)
目前我正在开发一个应用程序来管理用 Django 编写的汽车和事件的驱动程序,Python。
我有两个模型:
class Vehicle(models.Model):
name = models.CharField(max_length=100)
max_capacity = models.IntegerField(default=2)
available = models.BooleanField()
class Event(models.Model):
start_timestamp = models.DateTimeField()
end_timestamp = models.DateTimeField()
description = models.TextField()
location = LatLonField()
我保存了 10 种不同的车辆。
有 18 个不同的事件。
现在我想为一个事件添加多个车辆而不为每个事件生成新车辆,并指定将在该事件中使用这辆车的人数,例如:
Event 0815:
- FirstCar, loaded with 5/13 People
- SecondCar, loaded with 2/2 People
(汽车的最大容量在其型号中给出)
这与djangos数据库概念的结构怎么可能?
您可以创建一个 intermediate table 并使用 ManyToMany
字段的 through
参数:
class Event(models.Model):
...
vehicles = models.ManyToManyField(Vehicle, through='EventVehicle')
class EventVehicle(models.Model):
event = models.ForeignKey(Event)
vehicle = models.ForeignKey(Vehicle)
loaded = models.IntegerField(default=2)