尝试使用Django添加朋友时检索用户的ID

时间:2017-09-05 21:13:34

标签: python html django

好的,所以我正在建立一个网站的朋友系统,它进展顺利。当我手动输入正确的URL时,我已经能够在两个用户(友谊)之间建立关系。不过那就是问题所在,我需要手动输入,这是我的urls.py:

   url(r'^profile_test/connect/(?P<operation>.+)/(?P<pk>\d+)/$', views.change_friends, name='change_friends')

这是views.py:

def change_friends(request, operation, pk):
    #this view will manage a user's friends
    other_user = User.objects.get(pk=pk)

    if operation == 'add':
        Friend.objects.add_friend(
            request.user, other_user, message='Hi, I would like to add you')

    elif operation == 'remove':
        Friend.objects.remove_friend(request.user, other_user)


    return HttpResponse(Friend.objects.friends(request.user))

如您所见,视图采用参数operationpk,操作将添加或删除朋友,而pk将是您要添加为的用户的主键一个朋友。

我正在尝试找到一种方法来动态生成正在添加的用户的ID,因此我可以将其放在URL中。所以这个HTML代码需要这样做,但我不知道如何:

<a href='http://localhost:8000/profile_test/connect/add/dynamically-generated-pk/'> Click </a>

我应该怎么做?我正在使用django-friendship包btw

1 个答案:

答案 0 :(得分:1)

当您{html} render时,您需要传递动态生成的pk列表pk_list,以便能够将其存储为页面上的链接。我不确定您希望哪些用户可以放入您的链接,但如果是所有用户,您可以执行以下操作:

<强> views.py

pk_list = [obj.pk for obj in User.objects.all()] #TBD: remove the current user
render(request, 'example.html', {'pk_list': pk_list})

<强> example.html的

{% for pk in pk_list %}
    <a href='http://localhost:8000/profile_test/connect/add/{{pk}}'> Click </a>
{% endfor %}