如何解决Django与mysql插入错误

2024-04-16 10:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我为外键创建模型 约束总是返回错误

Image

模型是

class AirPort(models.Model):

  code = models.CharField(max_length=3)
  city = models.CharField(max_length=100)

  def __str__(self):
     return f"{self.id} - CODE =>{self.code} :: CITY=> {self.city}"

class Flight(models.Model):

  orgin_id = models.ForeignKey(AirPort,on_delete=models.CASCADE,related_name="dep")
  dest_id = models.ForeignKey(AirPort,on_delete=models.CASCADE,related_name="arrival")
  duration = models.IntegerField()

  def __str__(self):
      return f"{self.id} - {self.orgin} TO {self.dest} will take {self.duration} minutes"

外壳输出为

a=Flight(orgin_id=1,dest_id=2,duration=120) Traceback (most recent call last): File "", line 1, in File "/home/kid/PycharmProjects/hardward/venv/lib/python3.6/site-packages/django/db/models/base.py", line 467, in init _setattr(self, field.name, rel_obj) File "/home/kid/PycharmProjects/hardward/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 210, in set self.field.remote_field.model._meta.object_name, ValueError: Cannot assign "1": "Flight.orgin_id" must be a "AirPort" instance.


Tags: namein模型selfidfieldmodelsline
3条回答

你有运行python吗管理.pymakemigrations…并使用python迁移数据管理.py迁移

你可以试试这个

flight_result=Flight()
flight_result.orgin_id = AirPort.object.first()
flight_result.dest_id = AirPort.object.last()
flight_result.duration = 1000
flight_result.save()

试试看

a=Flight(orgin=AirPort.object.get(id=1),dest=AirPort.object.get(id=2),duration=120)

相关问题 更多 >