繁体   English   中英

如何解决django在插入时出现mysql错误

[英]How to solve django with mysql error in inserting

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

图片

该模型是

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) 回溯(最近一次调用最后一次):文件“”,第 1 行,文件“/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: 无法分配 "1": "Flight.orgin_id" must be a “机场”实例。

尝试

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

您是否运行了 python manage.py makemigrations...并使用 python manage.py migrate 迁移了数据

你可以试试这个

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

我收到这个错误,因为我没有看到最后的逗号

order.employee=Employee.objects.get(employee_id=x),

它的起源是我之前使用了 Order.objects.create() ,为此使用了逗号分隔的属性分配,并且我没有立即删除逗号。 可能对在电脑前坐得太久的人有所帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM