我收到错误no such table: PurchaseHistory_purchasehistory
我尝试了makemigrations并进行迁移,并清除了pycache并删除了迁移均无济于事。我有什么办法可以阻止过去的所有迁移并再次从头开始进行makemigrations?
models.py
class PurchaseHistory(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="purchase_history")
is_one_invested = models.BooleanField(default=False)
def __str__(self):
return self.user.username
class Meta:
app_label = 'PurchaseHistory'
payments/views.py
def charge(request):
if request.method == 'POST':
charge = stripe.Charge.create(
amount=500,
currency='usd',
description='A Django charge',
source=request.POST['stripeToken']
)
if request.user.is_authenticated:
if PurchaseHistory.objects.filter(user=request.user).exists():
request.user.purchase_history.is_one_invested = True
request.user.purchase_history.save()
return render(request, 'charge.html')
应该对我的数据库进行更改,但是在我看来,我的迁移未正确添加我的模型。我知道我做错了事,我希望有人向我展示如何解决此问题。我查看了许多类似的问题,并尝试了许多答案,但没有任何效果。
我的模型存在于我的主项目文件夹中,并且视图位于payments / views.py中,我尝试将模型放入我的支付应用程序,但仍然无法使用。在检查我的数据库后,似乎根本没有与模型相关的东西。我在主应用程序和付款应用程序中创建了新的迁移文件夹,并向两者都添加了一个空白的“ init .py”文件,makemigrations和迁移仍无法正常工作。
答案 0 :(得分:0)
正在移除:
class Meta:
app_label = 'PurchaseHistory'
解决了我的问题。 python manage.py makemigrations
和python manage.py migrate
现在将PurchaseHistory添加到了我的数据库。我不知道为什么会这样。有一个很好的解释,但与此同时,这是任何处理类似问题的人的答案。