Django错误题本
原来的userinfo的地址是Charfield,但由于地址本最好单独建表,照应一个用户可以有多个地址:就改成了如下
执行完:
python manage.py makemigrations
python manage.py migrate
这个代码之后,报错:: raise IntegrityError(
django.db.utils.IntegrityError: The row in table 'account_userinfo' with primary key '1' has an invalid foreign key: account_userinfo.post_address_id contains a value '这是个地址,显示一下吧' that does not have a correspondi account_customerpostaddress.id.
我觉得可能原因是原有数据是charfield造成的,这个一定要注意
class UserInfo(models.Model):
"""
"""
mobile = models.CharField(verbose_name="手机号", max_length=11) #要么手机,要么身份证
password = models.CharField(verbose_name="登录密码", max_length=32)
post_address = models.ForeignKey(verbose_name="快递地址",to="CustomerPostAddress",on_delete=models.CASCADE,null=True,blank=True)
class CustomerPostAddress(models.Model):
"""地址列表"""
receiver=models.CharField(verbose_name='收件人',max_length=20)
mobile=models.CharField(verbose_name='电话',max_length=11)
province=models.CharField(verbose_name='省份',max_length=20)
city=models.CharField(verbose_name='城市',max_length=20)
district = models.CharField(verbose_name='区/县', max_length=20)
street = models.CharField(verbose_name='街道', max_length=20)
detail=models.CharField(verbose_name='详细地址',max_length=20)
is_default=models.BooleanField(verbose_name='是否默认地址',default=True)