django 中没有名为 'ecommerce.store' 的模块



我运行命令python3 manage.py runserver它抛出一个错误,显示没有名为电子商务的模块。存储但它是。

这是我的电子商务。商店。视图文件

from ecommerce.store.models import Product
from django.shortcuts import render
from .models import *  
def store(request):
products = Product.objects.all()
context = {'products':products}
return render(request, 'store/store.html', context)
def cart(request):
context = {}
return render(request, 'store/cart.html', context)
def checkout(request):
context = {}
return render(request, 'store/checkout.html', context)

这是我的电子商务。商店。admin文件

from django.contrib import admin
from .models import *
admin.site.register(Customer)
admin.site.register(Product)
admin.site.register(Order)
admin.site.register(OrderItem)
admin.site.register(ShippingAddress)

这是我的电子商务。商店。模型文件

from django.db import models
from django.contrib.auth.models import User
from django.db.models.fields.related import ForeignKey
class Customer(models.Model) :
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
def __str__(self) :
return self.name
class Product(models.Model) :
name = models.CharField(max_length=200, null=True)
price = models.FloatField()
digital = models.BooleanField(default=False, null=True, blank=True)
def __str__(self) :
return self.name
class Order(models.Model) :
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
date_ordered = models.DateTimeField(auto_now_add=True)
complete = models.BooleanField(default=False, null=True, blank=True)
transaction_id = models.CharField(max_length=200, null=True)
def __str__(self) :
return str(self.id)
class OrderItem(models.Model) :
product = models.ForeignKey(Product, on_delete=models.SET_NULL, blank=True, null=True)
order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
quantity = models.IntegerField(default=0, blank=True, null=True)
date_added = models.DateTimeField(auto_now_add=True)
class ShippingAddress(models.Model) :
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
address = models.CharField(max_length=200, null=False)
city = models.CharField(max_length=200, null=False)
state = models.CharField(max_length=200, null=False)
zipcode = models.CharField(max_length=200, null=False)
date_added = models.DateTimeField(auto_now_add=True)
def __str_(self):
return self.address

这是我的电子商务。商店。url文件

from django.urls import path
from . import views
urlpatterns = [
path('', views.store, name="store"),
path('cart/', views.cart, name="cart"),
path('checkout/', views.checkout, name="checkout"),
]

这是终端显示的实际错误图像,请帮助我输入图片描述

谢谢你的帮助

from ecommerce.store.models import Product将从项目根目录找到ecommerce包,这将找到子目录ecommerce而不是根目录ecommerce,您可以使用绝对导入:

from store.models import Product

或者直接使用相对导入(推荐方式):

from .models import Product

尝试更改错误的导入:

from ecommerce.models import Product

我有一个类似的问题,发现我没有将表单导入views.py头文件。

检查是否已导入

最新更新