django - Django表单没有出现
问题描述
我是 django 新手,试图在 html 文件中显示表单,但看不到字段。我可以看到除了表格之外的所有内容。
任务:
允许用户在侧边栏中的搜索框中键入查询以搜索百科全书条目。
视图.py
def index(request):
entries = util.list_entries()
searched = []
if request.method == "POST":
form = Search(request.POST)
if form.is_valid():
item = form.cleaned_data["item"]
for i in entries:
if item in entries:
page = util.get_entry(item)
page_converted = markdowner.convert(page)
context = {
'page': page_converted,
'title': item,
'form': Search()
}
return render(request, "encyclopedia/entry.html", context)
if item.lower() in i.lower():
searched.append(i)
context = {
'searched': searched,
'form': Search()
}
return render(request, "encyclopedia/search.html", context)
else:
return render(request, "encyclopedia/index.html", {"form": form})
else:
return render(request, "encyclopedia/index.html", {
"entries": util.list_entries(), "form":Search()
})
布局.html
<div class="sidebar col-lg-2 col-md-3">
<h2>Wiki</h2>
<form method="post" action="{% url 'index' %}">
{% csrf_token %}
{{form.item}}
</form>
<div>
<a href="{% url 'index' %}">Home</a>
</div>
<div>
<a href="{% url 'create' %}">Create New Page</a>
</div>
<div>
<a href="{% url 'random' %}">Random Page</a>
</div>
{% block nav %}
{% endblock %}
</div>
搜索类
class Search(forms.Form):
items = forms.CharField(widget=forms.TextInput(attrs={'class': 'myfieldclass', 'placeholder': 'search'}))
解决方案
尝试{{ form.as_p }}
或只是{{ form }}
代替{{ form.item }}
.
我认为item
没有提到任何东西。
更新:
Search
您的表单类中有错字。字段名称不应item
为items
.