如何解决django与mysql插入错误

g6ll5ycj  于 2021-06-15  发布在  Mysql
关注(0)|答案(4)|浏览(338)

我为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\u id=1,dest\u id=2,duration=120)traceback(最近一次调用last):file“”,第1行,在file“/home/kid/pycharmprojects/hardward/venv/lib/python3.6/site packages/django/db/models/base.py”中,第467行,在init\u setattr(self,field.name,rel\u obj)file“/home/kid/pycharmprojects/hardward/venv/lib/python3.6/site packages/django/db/models/fields/related\u descriptors.py”,第210行,在set self.field.remote\u field.model.\u meta.object\u name,valueerror:无法分配“1”:“flight.orgin\id”必须是“airport”示例。

frebpwbc

frebpwbc1#

尝试

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

sf6xfgos2#

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

bq3bfh9z

bq3bfh9z3#

我收到这个错误是因为我没有看到结尾的逗号

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

它的起源是我以前使用order.objects.create(),其中一个使用逗号分隔的属性赋值,我没有立即删除逗号。希望它能帮助那些在电脑前坐得太久的人:)

8gsdolmq

8gsdolmq4#

你可以试试这个

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

相关问题