我想创建一个彩票应用程序,它已经工作正常,但今天当我试图做一个python manage.py迁移lotteryapp它开始生产,其中指出Django的迁移产生奇怪的错误
django.db.utils.OperationalError: (1060, "Duplicate column name 'email'")
错误所以我删除了电子邮件的所有参考资料,看看是否能解决这个问题,但它仍然会给出错误。然后我删除了数据库中的所有在一起,重新开始,但随后给了这个错误
ValueError: invalid literal for int() with base 10: ''
我已经在我的models.py文件,并回去了,并再次运行该命令并再次给出了重复的列错误。这没有任何意义。这里是我的代码models.py:
from django.db import models
from django.utils import timezone
from datetime import datetime
class Lottery(models.Model):
name = models.CharField(default="", max_length=50)
date_drawn = models.DateTimeField(default=datetime.now,blank=True)
win_amount = models.IntegerField(default=0)
winning_numbers = models.IntegerField(default="")
def __unicode__(self):
return self.name
class Winner(models.Model):
first_name = models.CharField(max_length=100, default="")
last_name = models.CharField(max_length=100, default="")
winner_telephone = models.IntegerField(max_length=15, default="")
lottery_numbers = models.IntegerField(default=0)
lottery_won = models.CharField(max_length=50, default="")
def __unicode__(self):
return self.name
class User(models.Model):
first_name = models.CharField(max_length=100, default="")
last_name = models.CharField(max_length=100, default="")
telephone = models.IntegerField(default="")
def __unicode__(self):
return self.first_name
class entered_user(models.Model):
first_name = models.CharField(max_length=100, default="")
last_name = models.CharField(max_length=100, default="")
telephone = models.IntegerField(default="")
lottery_numbers = models.IntegerField(default="")
def __unicode__(self):
return self.first_name
我现在已经从删除的列电子邮件(我不知道为什么或如何在那里)和我已经跑了迁移再次,我现在得到ValueError:无效文字为int()与基10:''错误再次。此外,无论何时我做python manage.py makemigrations lotteryapp,它都会在数据库的entered_user表中添加一个电子邮件列,尽管他们没有参考models.py中的电子邮件 – CNB
我现在已经将它设置为工作状态,但我没有找到问题的原因。我必须完全删除数据库和entered_user模型,并删除所有迁移并重新启动它。 – CNB