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 .forms
或 from .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
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 .forms
或 from .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