小编Sim*_*nov的帖子

Django:在不重新加载页面或渲染到另一个页面的情况下在表单提交上发出 POST 请求?

我已经为这个问题苦苦挣扎了两天多,我在这里查看了类似的问题以及许多文档,但没有任何帮助。基本上,我正在构建一个 Django Web 应用程序(人们可以在其中将自己添加为朋友)我正在使用 Django 包 django-friendship,但我希望发生以下情况:当用户在其他人的个人资料中时,第一个可以单击“添加好友”按钮,必须发送好友请求。但我想在不重新加载页面或渲染到另一个页面的情况下实现这一点。为了发送请求而必须触发的方法在 views.py 中。可能我需要使用ajax,但以什么方式使用?例如,我的最终目标是在 facebook 中作为“添加朋友”按钮执行的按钮(无需重新加载)。

朋友简介.html

<form action="{% url 'users:fr_request' pk=friend.id %}" method="POST">
{% csrf_token %}
<input type="submit" value="Add friend"/>
Run Code Online (Sandbox Code Playgroud)

视图.py

def friendship_add(request, pk):
if request.method == 'POST':
    to_user = User.objects.get(pk=pk)
    from_user = request.user
    try:
        Friend.objects.add_friend(from_user, to_user)
    except AlreadyExistsError as e:
        print('Exception when adding a friend ' + e)
    else:
        return HttpResponse('You added a friend')

return render(request, 'users/friend_profile.html')
Run Code Online (Sandbox Code Playgroud)

网址.py

urlpatterns = [
url(r'users/(?P<pk>\d+)/send/$', views.friendship_add, name='fr_request'),
Run Code Online (Sandbox Code Playgroud)

]

在提交表单的那一刻,我将页面呈现给 users/(?P\d+)/send/,它调用视图方法并执行 Friend.objects.add_friend,但我希望这发生在不去 /send/ 页面的情况下或重新加载电流?

javascript django ajax jquery django-forms

1
推荐指数
1
解决办法
5373
查看次数

标签 统计

ajax ×1

django ×1

django-forms ×1

javascript ×1

jquery ×1