【发布时间】:2014-06-10 15:26:27
【问题描述】:
我有一个与数据库交互的 Django REST Framework 后端。在我的应用程序中,我希望有一个联系人部分,每个用户都可以在其中将自己的联系人添加到数据库中,但只能看到他们添加的联系人。就目前而言,我可以从数据库中获得任何经过身份验证的用户 POST 或 GET,但它是一个“集体”数据库,每个用户都可以看到彼此的联系人。但是,我无法准确地找到 如何 我这样做。在我看来,我有一些概念性的解决方案,但我都不太明白我需要在代码中实际添加什么才能使其正常工作。
这里是联系人的精简views.py:
@api_view(['GET','POST','DELETE' ])
@permission_classes((IsAuthenticated,))
def contacts_list(request):
if (request.method == 'GET'):
contacts = Contact.objects.all()
contacts_serializer = ContactSerializer(contacts, many=True)
return Response(contacts_serializer.data)
elif (request.method == 'POST'):
//post stuff happens here...
elif (request.method == 'DELETE'):
//Delete stuff happens here...
理论解决方案1:为每个联系人添加一个新元素,该元素是“属于”标识符。拉起联系人时,只选择与所属标识符匹配的联系人。
理论解决方案 2:创建单独的联系人列表 - 因此,当您发布时,您将发布到您自己的列表中,而当您获得时,您将获得整个列表。
理论解决方案 3:找到 Django 或 DRF 中内置的东西,使其更容易......我无法做到,特别是因为我真的不知道我应该做什么正在寻找。
【问题讨论】:
标签: django permissions django-rest-framework