繁体   English   中英

Django,试图向现有模型添加一个字段引发错误

[英]Django, tried to add a field to exsting model raises error

我有一个包含以下模型的 Django rest 框架 API:

class Points(models.Model):

    mission_name = models.CharField(name='MissionName',
                                    unique=True,
                                    max_length=255,
                                    blank=False,
                                    help_text="Enter the mission's name"
                                    )

    latitude = models.FloatField(name="GDT1Latitude",
                                 unique=False, max_length=255, blank=False,
                                 help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                 default=DEFAULT_VALUE)
    longitude = models.FloatField(name="GDT1Longitude",
                                  unique=False, max_length=255, blank=False,
                                  help_text="Enter the location's Longitude, second when extracting from Google Maps.",
                                  default=DEFAULT_VALUE)

添加用户字段:

class Points(models.Model):

     user = models.ForeignKey(User, on_delete=models.CASCADE)
     # rest of fields...

我添加了一个用户字段,当尝试进行迁移并迁移它时,我收到以下错误:

django.db.utils.ProgrammingError: column find_second_gdt_points.user does not exist
LINE 1: SELECT "find_second_gdt_points"."id", "find_second_gdt_point...

我不明白,当然,这个专栏不存在。

这就是迁移的目的,不是吗?

尝试添加 default=None,

class Points(models.Model):

      user = models.ForeignKey(User, on_delete=models.CASCADE, default= None)
      # rest of fields...

这些错误通常是因为您需要为新字段包含一个默认的 null 值,并允许它为nullable ,它应该像这样简单:

class Points(models.Model):

     user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, default=None)
     ...

原因是迁移应用于数据库中的现有记录以及所有未来记录。 迁移需要知道如何为现有记录填充数据库中的新字段(列)...

暂无
暂无

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

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