2015-05-15 7 views
4

Я создаю REST API для обслуживания приложения для Android. Я не пытаюсь изобретать колесо, поэтому я пытаюсь использовать приложение django-friendship, найденное в https://github.com/revsys/django-friendship/ совместно с DRF. К сожалению, документация для django-friendship довольно скудна, и я новичок в разработке Django/DRF. Я сталкиваюсь с проблемой, когда я не могу просмотреть отношения друзей, основанные на личности.Django Rest Framework view возвращает пустой объект

В представлении списка друзей должны отображаться все друзья запрашивающего пользователя. Я могу создавать друзей на отдельном представлении, но это представление показывает КАЖДОЕ дружеское отношение. Я хочу иметь возможность просматривать друзей конкретного пользователя. То есть, когда пользователь GET в каталоге/friends/будет отображать список своих друзей.

Однако в настоящее время в этом представлении отображается только пустой объект JSON, а не список друзей для пользователя. Как мне изменить вид FriendList, чтобы он правильно вернул список друзей для пользователя?

views.py

class FriendList(APIView): 
    """ 
    Lists all of the requesting users friends 
    """ 
    def get(self, request): 
     friends = Friend.objects.friends(request.user) 
     serializer = FriendSerializer(friends, many=True) 
     return Response(serializer.data) 

serializer.py

class FriendSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Friend 

urls.py

urlpatterns = patterns('', 
    url(r'^', include(router.urls)), 
    url(r'^api-auth/', include('rest_framework.urls', 
           namespace='rest_framework')), 
    url(r'^api-token-auth/', obtain_auth_token), 
    url(r'^friends', views.FriendList.as_view()) 
+1

Две возможные проблемы: вы не указываете DRF, какие поля использовать (что объясняет пустые '{}') и 'friends' могут быть пустыми (что объясняет пустую' [] '). Каков ваш ответ на самом деле? –

+0

Ответ включает to_user (запрашивающий пользователя), from_user (их друг) и создан (время, когда они стали друзьями). Я тестировал его двумя разными именами пользователей. Я поставил их друзьями друг с другом. Если я попытаюсь перейти к/friends/url с пользователем, у которого нет друзей, я получаю сообщение об ошибке. Однако, если я перехожу к/friends/вошел в систему как пользователь, у которого есть друзья, у меня нет ошибки, а пустой массив. – user2793442

+0

«Я получаю сообщение об ошибке», возможно, было бы полезно включить ошибку в ваш вопрос, возможно, у нее есть намек на то, почему в другом ответе нет объектов. –

ответ

0
def get(self, request):   
    friends = Friend.objects.friends(request.user) 

В приведенном выше коде вы можете использовать get() или filter() вместо о f friends()

Смежные вопросы