Skip to main content
 首页 » 编程设计

python之Django:无法导入名称 'model'

2024年08月16日32qq号

所以我是一名学生,我正在尝试使用 Django 建立一个小商店,所以当我在我的笔记本电脑上运行该项目时它按预期工作但是当我将它上传到服务器时我得到了这个错误

cannot import name 'CustomerOrderModel'

views.py

from django.shortcuts import render, get_object_or_404 
from django.views import generic 
from HomePage.models import Product 
from HomePage.forms import Customer 
from django.contrib import messages 
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 
 
#other functions 
 
def customer_order_view(request, pk): 
   product = get_object_or_404(Product, id=pk) 
   form = Customer(request.POST or None) 
   if form.is_valid(): 
      instance = form.save(commit=False) 
      instance.customer_product_name = product 
      instance.save() 
      messages.success(request, "Success \n we will contact you soon") 
      context = {'form': form, 'product': product} 
   return render(request, 'HomePage/customerDetail.html', context) 

表单.py

from django import forms 
from HomePage.models import CustomerOrderModel  #the error in this line  
 
class Customer(forms.ModelForm): 
  class Meta:    
    model = CustomerOrderModel    
    fields = [# some fields] 

url.py

from django.conf.urls import url 
from django.conf import settings 
from django.conf.urls.static import static 
from HomePage.views import index_view, GiftView, FlowerView, BalloonView,  
detail_view, customer_order_view 
 
app__name = 'HomePage' 
 
urlpatterns = [ 
              url(r'^$', index_view, name='index'), 
              url(r'^gift/$', GiftView.as_view(), name='gift'), 
              url(r'^flower/$', FlowerView.as_view(), name='flower'), 
              url(r'^balloon/$', BalloonView.as_view(), name='balloon'), 
              url(r'^(?P<pk>[0-9]+)/$', detail_view, name='detail'), 
              url(r'^(?P<pk>[0-9]+)/order/$', customer_order_view,  
                  name='product_form'), 
                  ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

admin.py

from django.contrib import admin 
from HomePage.models import Product, CustomerOrderModel 
 
#some code 

模型.py

from django.db import models 
from django.core.validators import RegexValidator 
 
#some code 

这是我的文件结构图

image of the file structure

回溯

  File "/home/django/venv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 
  35.             response = get_response(request) 
 
File "/home/django/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
 128.                 response = self.process_exception_by_middleware(e, request) 
 
File "/home/django/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs) 
 
File "/home/django/LovelyMemory/HomePage/views.py" in customer_order_view 
49. def customer_order_view(request, pk): 
 
File "/home/django/LovelyMemory/HomePage/forms.py" in <module> 
4. class Customer(forms.ModelForm): 
 
File "/home/django/LovelyMemory/HomePage/forms.py" in Customer 
5.     class Meta: 
 
File "/home/django/LovelyMemory/HomePage/forms.py" in Meta 
6.         from HomePage.models import CustomerOrderModel 
 
Exception Type: ImportError at /8/order/ 
Exception Value: cannot import name 'CustomerOrderModel' 

请您参考如下方法:

我明白了,这是由于在您的 urls.py 中循环导入所致 你在做 来自 .导入 View 你应该这样做 from .views import XyzView, AbcView

这是因为您还导入了在 views.py 中完成的所有导入。 希望你明白了。