我想創建一個彩票應用程序,它已經工作正常,但今天當我試圖做一個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