表单有效。输入显示在规则上。但模板显示空白页面。救命啊!
views.py
class StandingsView(FormView):
form_class = SelectTeam
template_name = 'teamsports/standings.html'
model = Teams
success_url = None
def form_valid(self, form):
form=SelectTeam
data = self.request.GET.get('team_name')
team = Teams.objects.filter(team_name__icontains=data).values()
return render(self.request, 'teamsports/standings.html', {'team': team})
template.html
{% extends 'teamsports/base.html' %}
{% block content %}
<h1>Pick your team, chump</h1>
<form form_name = SelectTeam action="" method="GET">
{{ form }}
<input type="submit" value="Submit" />
{{ form.errors }}
</form>
<h1> {{ team }} </h1>
{% for team in Teams %}
<h1>{{ team.team_name }}</h1>
{% endfor %}
{% endblock %}
来自settings.py的更新 - 虽然我没有传递任何变量,但我的基础和主页模板已扩展。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'/home/mrsaltz/thepub/teamsports/templates/teamsports',
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
答案 0 :(得分:0)
我只是尝试在我的环境中迭代你的情况,一切正常。我的意思是我的模板中有表单和模型。对模板命名可能有问题。
您的视图中已有字典{'team:team'}。所以你的观点应该是这样的:
url(r'^standings/$', views.StandingsView.as_view()),
您的模板主题应如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
然后你的项目的根目录必须有template
文件夹。
在template
文件夹中,您必须拥有base.html
文件,如下所示:
<body>
{% block main %}{% endblock %}
</body>
然后在模板文件夹中创建文件夹,在您的案例中调用与您的应用相同的文件夹,因为我将其teamsports
覆盖,那么您的standings.html
文件应如下所示:
{% extends 'base.html' %}
{% block main %}
<h1>Pick your team, chump</h1>
<form form_name = SelectTeam action="" method="GET">
{{ form }}
<input type="submit" value="Submit" />
{{ form.errors }}
</form>
<h1> {{ team }} </h1>
{% for team in Teams %}
<h1>{{ team.team_name }}</h1>
{% endfor %}
{% endblock %}
请注意,如果{% block main %}{% endblock %}
base.html
standings.html
中有Failed to create Specman's temporary directory
`/local/temp/specman'
个sn_complile.sh efile.e -t temp/
。