我正在尝试在Django中导入一个简单的单字段表单,并且在YouTube上浏览了很多介绍该表单的教程视频。但是,我无法在我的网络应用程序上呈现此简单表单。我很确定自己所做的事情确实很愚蠢,但我仍然没有注意到。
我还将张贴在文件夹结构中,以便您建议我是否在错误的views.py文件中定义了类/函数。
适当的源代码如下:
earthquake / views.py文件
from django.shortcuts import render
from earthquake.forms import HomeForm
from django.views.generic import TemplateView
class HomeView(TemplateView):
template_name = 'earthquake/home.html'
def get(self, request, *args, **kwargs):
form1 = HomeForm()
argf = {
'myform': form1
}
return render(request, self.template_name, argf)
forms.py
from django import forms
class HomeForm(forms.Form):
post = forms.CharField()
home.html(摘要)
<div class="container">
<div class="jumbotron">
<h1>Query Form</h1>
<p>Please Enter the parameters you want to query against the USGS Earthquake DB</p>
<div class="container">
<form class="" method="post" action="">
{% csrf_token %}
{{ myform }}
<button type="submit" class="btn btn-success">Search</button>
</form>
</div>
</div>
</div>
Django项目网址(interview.py/urls.py)
from django.contrib import admin
from django.urls import path, include
from interview.views import login_redirect
from interview import views
from django.contrib.auth.views import LoginView
from django.contrib.auth.views import LogoutView
urlpatterns = [
path('', login_redirect, name='login_redirect'),
path('admin/', admin.site.urls),
path('home/', include('earthquake.urls')),
path('login/', LoginView.as_view(template_name='earthquake/login.html'), name="login"),
path('logout/', LogoutView.as_view(template_name='earthquake/logout.html'), name="logout"),
path('register/', views.register, name='register'),
]
应用程序URL(面试/地震/urls.py)
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
文件夹结构
https://i.stack.imgur.com/zoehT.jpg
(如果您看不到图像中的最后一个条目,则是项目文件夹中存在的主要 views.py )。
以下是我当前获得的渲染的快照:
答案 0 :(得分:0)
我看到在您的家庭视图文件中,基于类的视图称为
HomeView(TemplateView)
然而,在您的应用程序网址中,您应该在应包含view.home
的视图中添加该视图
view.HomeView
此外,这是基于分类的视图,因此您的url页面应如下所示:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home.as_view(), name='home'),
]
由于这是基于类的视图。