我在django app中有一个ManyToMany模型:
class Colors(models.Model):
color = models.CharField(max_length=30)
class Cars(models.Model):
brand = models.CharField(max_length=30)
class Lote(models.Model):
adress = models.CharField(max_length=100)
cars = models.ManyToManyField(Cars)
color = models.ManyToManyField(Cars)
我尝试使用两个pk列表保存新的Lote()
:
colors_pk = [1,2,3]
cars_pk = [3,1,2]
我的问题是:如果我保存Lote()
这样的实例:
lote = Lote(adress='Some address')
lote.save()
lote.cars.add(cars_pk)
lote.color.add(colors_pk)
将颜色和汽车以与列表相同的顺序保存在m2m字段中吗?因为列表的顺序很重要 - colors_pk
和cars_pk
与索引相关,即汽车3与颜色1相关联。
那我该怎么做呢?
答案 0 :(得分:1)
我会重新设计你的模型:
class Color(models.Model):
color = models.CharField(max_length=30)
class Car(models.Model):
brand = models.CharField(max_length=30)
color = models.ManyToManyField(Color)
class Lot(models.Model):
address = models.CharField(max_length=100)
cars = models.ManyToManyField(Car)
这使得汽车与Lote和颜色相关联,但确保颜色与汽车正确链接。