python - Django 错误:没有这样的表,即使在进行迁移之后
问题描述
我在访问http://127.0.0.1:8000/orders/create/时遇到操作错误
我得到的错误:
OperationalError at /orders/create/
no such table: orders_order
我已经尝试过进行迁移。但问题不会消失
我的 models.py 看起来像这样:
from django.db import models
from ecom.models import Product
# Create your models here.
class Order(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
address = models.CharField(max_length=250)
postal_code = models.CharField(max_length=20)
city = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
class Meta:
ordering = ('-created',)
def __str__(self):
return 'Order {}'.format(self.id)
def get_total_cost(self):
return sum(item.get_cost() for item in self.items.all())
#item info
class OrderItem(models.Model):
order = models.ForeignKey(Order, related_name='items',on_delete=models.PROTECT)
product = models.ForeignKey(Product,related_name='order_items',on_delete=models.PROTECT)
price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.PositiveIntegerField(default=1)
def __str__(self):
return '{}'.format(self.id)
def get_cost(self):
return self.price * self.quantity
我的views.py 看起来像这样:
from django.shortcuts import render
from .models import OrderItem
from .forms import OrderCreateForm
from cart.cart import Cart
# Create your views here.
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity'])
# clear the cart
cart.clear()
return render(request, 'order/created.html', {'order': order})
else:
form = OrderCreateForm()
return render(request, 'order/create.html', {'cart': cart, 'form': form})
Django 突出显示的行:
order = form.save()
解决方案
python manage.py migrate
我通过运行来修复它python manage.py makemigrations orders
。还要确保您的应用程序包含在settings.py
文件中。
推荐阅读
- python - 有没有办法将参数从 Jenkins 作业传递到 RobotFramework 和/或 python 脚本?我可以在有和没有 Jenkinsfile 的情况下做到这一点吗?
- ruby - Selenium 在 chrome 84 中打开一个空白页,在 83 中工作正常
- python - 是否可以在 Python 上使用 OpenCV 进行转换,但只能在图像的边缘应用?
- javascript - 函数针对每个键入的 javascript 字母单独运行(字体粗细更改)
- javascript - ECMAScript 规范中的创建和执行阶段
- linq - COSMOS DB 加入 TOP 运算符
- elasticsearch - 匹配类型的 DSL 查询如何不起作用?
- javascript - 计算具有特定数据 ID 的选定单选按钮的值的总和
- sql - 列是 SQL Server 中匹配日期上其他唯一值的比率
- swift - 如何结合文字使用 Swift 不透明类型?