如何在Django中选择用户个别单词或行并进行相应处理?

时间:2012-12-06 11:08:47

标签: django

我有这样的行或单词:

hello
ok 
there
hi

我想让用户选择每一行,将该行存储在变量中并使用DJango视图处理该行。我怎样才能做到这一点?感谢

2 个答案:

答案 0 :(得分:1)

假设这些行在网页上,请使用一些jQuery来处理点击/选择行并将其推送到django视图。

例如,这种类型的东西(非常粗略的伪代码):

HTML:

<table>
<tr>hello</tr>
<tr>ok</tr>
</table>

jQuery的:

$(document).ready( {
    $('table tr').onClick(function(){
        $(this).style('color','green'); // to show that its selected
        $.ajax({  type: 'POST',  url: 'django/url',  data: JSON_stringify($(this).text()),   dataType: dataType});
    });
});

答案 1 :(得分:1)

不完全确定您希望用户如何选择每一行,但这里有一个简单的示例,如果您想使用复选框,让用户从索引页面中的已定义列表中进行选择并按需要处理它投票视图(存储在选项列表变量中):

在你的views.py中

def index(request):
    mylist = ["hello", "ok", "there", "hi"]
    return render_to_response('testing/index.html', {'mylist': mylist}, context_instance=RequestContext(request))

def vote(request):
    choices = request.POST.getlist('choice')
    return render_to_response('testing/vote.html', {'choices': choices})

并在index.html中:

<form action="/vote/" method="post">
{% csrf_token %}
{% for choice in mylist %}
    <input type="checkbox" name="choice" id="choice{{ forloop.counter }}" value="{{ choice }}" />
    <label for="choice{{ forloop.counter }}">{{ choice}}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>

,例如在vote.html中:

<html>
<table border="1">
{% for x in choices %}
<tr><td>{{ x }}</td></tr>
{% endfor %}
</table>
</html>

(来自https://docs.djangoproject.com/en/1.4/intro/tutorial04/的修改后的ripoff:)