【发布时间】:2020-08-20 22:10:41
【问题描述】:
我是 django 新手,试图在 html 文件中显示表单,但我看不到字段。 我可以看到除了表单之外的所有内容。
任务:
允许用户在侧边栏的搜索框中输入查询以 搜索百科全书条目。
views.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()
})
layout.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'}))
【问题讨论】:
-
不应该
layout.html是index.html,或者这是一个错字?您没有在任何地方发送“layout.html” -
您应该提供结果为错误或呈现的 html 并且请更正缩进
-
2 个不同的文件。 index.html 扩展 layout.html
-
form在方法 != 'POST' 时未定义 -
@GAEfan 我添加了关于它的答案你能看到我的编辑答案:) 和改进
标签: django django-forms