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'
。
首先,您似乎已经将表单文件命名为form.py,并且正在尝试访问一个名为forms的模块。将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
您的视图中存在问题.py
替换线下
from .forms import forms
带有
from <your app name>.forms import forms
你得到这个错误是因为django试图在你的manage.py所在的根文件夹中找到它。