ImportError: cannot import name 'forms' from 'basicapp'

ImportError: cannot import name 'forms' from 'basicapp'

form.py:

from django import forms

class FormName(forms.Form):
    name=forms.CharField()
    email=forms.EmailField()
    text=forms.CharField(widget=forms.Textarea)

views.py:

from django.shortcuts import render
from .forms import forms

def index(request):
    return render(request,'basicapp/index.html')

def form_page(request):
    Form = forms.FormName()
    return render(request,'basicapp/form_page.html',{'form':Form})

我不知道这里有什么问题!当我 运行 服务器时,它出错,说 ImportError : cannot import name 'forms' from 'basicapp'.

你的 view.py

有问题

替换 下行

from .forms import forms

from <your app name>.forms import forms

您收到此错误是因为 django 试图在您的 manage.py 所在的根文件夹中找到它。

首先,您似乎已将表单文件命名为 form.py,并且您正在尝试访问名为表单的模块。将 form.py 文件重命名为 forms.py.

其次,您正在尝试从表单文件中导入 forms。这实际上是引用了您通过 from django import forms 导入的 forms。你在这里有几个选择。在您的视图文件中,您可以 import .formsfrom .forms import FormName 我更喜欢后者。

所以,在你将 form.py 重命名为 forms.py 之后,我会重写 views.py 如下所示:

from django.shortcuts import render
from .forms import FormName

def index(request):
    return render(request,'basicapp/index.html')

def form_page(request):
    this_form = FormName()
    return render(request,'basicapp/form_page.html',{'form':this_form})

您在代码中犯了 两个 错误

1) 您的表单文件应命名为 forms.py 而不是 form.pY
2) 您的 views.py 导入代码应该是

    from django.shortcuts import render
    from basicapp import forms