我希望我的搜索结果显示在另一个html文件中。我的模板如下:
<html>
<head></head>
<body>
<div id="div1">
{% for i in var1 %}
{{i.name}}<br>
{% endfor %}
</div>
<form action="searchresult.html" method="post">{% csrf_token %}
<input type="text" name="search1">
<input type="submit" id="click1" value="search">
</form>
</body>
</html>
def search(request):
var = ""
if request.method=='POST':
s1 = request.POST.get("search1")
var = form1.objects.all().filter(keyskills=s1)
return render(request,"search.html",{'var1':var})
class form1(models.Model):
name = models.CharField(max_length=20)
qualification = models.CharField(max_length=20)
keyskills = models.CharField(max_length=50)
def __unicode__(self):
return self.name,self.qualification,self.keyskills
我的结果显示了同一页面中的搜索详情。相反,我希望它显示在searchresult.html
中。我已经在表格标签的行动中写了searchresult.html
。请给我你的建议。
答案 0 :(得分:0)
看起来形式Action重复了Html文件,而不是要调用的django方法。
你从根本上做的是:
1)您有一个包含POST操作的表单,在提交时,您将调用“action”标记中提到的方法。
2)使用POST数据进行处理后,再重定向到searchresult.html。
希望这有帮助。
答案 1 :(得分:0)
将表单的action
属性更改为映射到search
方法的网址。
在search
方法中;返回searchresult.html
模板:return render(request, 'searchresult.html', {'var1': var1 })
。
在searchresult.html
模板中,添加:
{% for i in var1 %}
{{i.name}}<br>
{% endfor %}
答案 2 :(得分:0)
将您的操作更改为
<form action="{% url your_project_name.your_app_name.views.search %}" method="post">
如果您发布了urls.py内容,会有所帮助。