通过url传递变量来查看

时间:2014-01-17 10:14:33

标签: django python-2.7

当我点击提交按钮时,我想通过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

这里亚伯拉罕是登录用户,但实际上我需要搜索梅林。所以我怎么能用梅林取代亚伯拉罕。

1 个答案:

答案 0 :(得分:1)

你无法获得一个表单字段来自动将其值放入表单提交的URL中(除非通过使用Javascript中的表单进行捣乱,这将是非常糟糕的。)

但正如您所看到的,您确实在请求参数中获取了这些数据:因为您正在执行GET,所以它位于request.GET['searchname']中。那么为什么不首先将username参数放到URL /视图中,只是使用它?