当我点击提交按钮时,我想通过url传递输入文本值。
views.py
def profile(request,username):
current_user = User.objects.filter(username=username)
return render_to_response ('profiles/search.html', {'current_user':current_user,
context_instance=RequestContext(request),)
search.html
<form action="{%url 'profiles:profile' username=user.username %}" id="search_by_username" method ="get">
<input type="text" name = "searchname" class="text" placeholder="Search by username" />
<input type="submit" value="button" />
</form>
urls.py
url(r'^view/(?P<username>\w+)/$', views.profile, name="profile"),
点击提交按钮后,我得到一个这样的网址:
192.168.1.33:8000/profiles/view/abraham/?searchname=merlin
这里亚伯拉罕是登录用户,但实际上我需要搜索梅林。所以我怎么能用梅林取代亚伯拉罕。
答案 0 :(得分:1)
你无法获得一个表单字段来自动将其值放入表单提交的URL中(除非通过使用Javascript中的表单进行捣乱,这将是非常糟糕的。)
但正如您所看到的,您确实在请求参数中获取了这些数据:因为您正在执行GET,所以它位于request.GET['searchname']
中。那么为什么不首先将username
参数放到URL /视图中,只是使用它?