0

我有一个这样的html代码:

{% for i, j, k in full_name %}
    {{ i }} {{ j }} 
    <input type="text" name="follow_id" value="{{ k }}" />
    <input type="submit" value="Follow"><br /> <br />   

{% endfor %}

输出如下所示:

user1 user_id_of_user1 follow_button

user2 user_id_of_user2 follow_button

user3 user_id_of_user3 follow_button

如果我按下 user3 的跟随按钮,我只想发送 user3 的 id,以便我可以像这样在服务器中访问它:

followed_user = request.POST['follow_id'] 
# Process

但是,无论我按下哪个 follow_button,我都只得到 user1 的用户 ID。如何解决这个问题?

4

2 回答 2

0

这不是 Django 问题,而是 HTML 问题。这是解决方法:每个用户 1 个表单:

{% for i, j, k in full_name %}
    <form action="mydomain.com/mysubmiturl/" method="POST"><!-- Leave action empty to submit to this very same html -->
        {% csrf_token %} <!-- Django server only accept POST requests with a CSRF token -->
        {{ i }} {{ j }} 
        <input type="text" name="follow_id" value="{{ k }}" />
        <input type="submit" value="Follow"><br /> <br />
    </form>
{% endfor %}

请注意,所有表单都提交到相同的 URL,因此具有相同的视图功能

于 2013-08-07T12:01:36.910 回答
0

只要我的 2 美分,我会使用一些 jQuery 来完成这项工作。

在您的模板中:

{% for i, j, k in full_name %}
    {{ i }} {{ j }} 
    <a href="#" id="js-follow-{{ k }}" class="follow-button">Follow</a>
{% endfor %}

然后使用 AJAX 提交数据:

$('.follow-button').click(function (e) {
    e.preventDefault();
    var this_id = $(this).attr('id').replace('js-follow-', '');    

    $.ajax({
        type: 'POST',
        url: 'path/to/view',
        data: {'follow_id': this_id},
        success: function (resp) {
            // do something with response here?    
        }
    });
});
于 2013-08-07T12:03:07.423 回答