【问题标题】:How to insert multiple foreign key values in django?如何在 django 中插入多个外键值?
【发布时间】:2021-03-20 01:33:48
【问题描述】:

我尝试使用 bulk_create 但我无法插入外键值,我想添加 100 辆自行车,大约 20 个站点

class Bike(models.Model):
    ID_Bike = models.CharField(primary_key=True, max_length=120)
    Belong_Station = models.ForeignKey(
        Station, on_delete=models.CASCADE, related_name='listBike')

    def __str__(self):
        return self.ID_Bike

class Station(models.Model):
    name_Station = models.CharField(max_length=120)
    latitude = models.FloatField(max_length=120)
    longitude = models.FloatField(max_length=120)
    address = models.CharField(max_length=120, default="")

    def __str__(self):
        return self.name_Station

【问题讨论】:

  • 你的目的不是很清楚,这里只提供模型。你想插入什么?您能提供当前插入值的方式吗?
  • 比如我创建了3个A、B、C站,我想创建Bike1到Bike5属于A站,Bike6到Bike10属于B站,Bike11到Bike 15属于C站。目前,我在 django 的管理页面上插入数据,但当时只能插入 1 辆自行车。所以我想同时为A站插入5辆自行车

标签: django django-models django-database


【解决方案1】:

您应该查看fixtures。如果我是你,我会坚持使用 SQL。这就是插入两个 Station 和三个 Bike 记录的 insert 语句的样子。

insert into Station (id, name_Station, latitude, longitude, address) values (1, "Johns Garage", 41.12, 23.58, "Fast Road 25, 001 12 Wales") , (2, "Mike riders place", 42.56, 21.43, "Somewhere street 12");

insert into Bike (ID_Bike, Belong_Station) values ("Johns bike", 1), ("Johns second bike", 1), ("Mikes bike", 2);

请注意,您必须先插入 Station 记录。否则,如果您尝试先插入 Bikes,外键约束将失败。

【讨论】:

    猜你喜欢
    • 2022-11-07
    • 2022-01-19
    • 1970-01-01
    • 2022-01-17
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    相关资源
    最近更新 更多