我已经为这个问题苦苦挣扎了两天多,我在这里查看了类似的问题以及许多文档,但没有任何帮助。基本上,我正在构建一个 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/ 页面的情况下或重新加载电流?