简体   繁体   English

Django错误:即使进行了迁移,也没有这样的表

[英]Django error: No Such Table, even after making migrations

I am getting Operational Error accessing http://127.0.0.1:8000/orders/create/ 我在访问http://127.0.0.1:8000/orders/create/时遇到操作错误

The error I get: 我得到的错误:

OperationalError at /orders/create/
no such table: orders_order

I have already tried making migrations. 我已经尝试过进行迁移。 But the issue won't go away 但是问题不会消失

My models.py look like this: 我的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

and my views.py looks like this: 和我的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})

The line which Django Highlights: Django突出显示的行:

order = form.save()

I fix it by running python manage.py migrate after python manage.py makemigrations orders . 我通过运行修复python manage.py migrate后, python manage.py makemigrations orders Also make sure your app is included in settings.py file. 另外,请确保您的应用包含在settings.py文件中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM