У меня есть серверная часть Django, построенная с django_rest_framework
.В настоящее время у меня есть объект, который является внешним ключом.Когда я делаю запрос API для захвата объекта, он отображает идентификатор внешнего ключа и только идентификатор.Я хочу, чтобы он отображал весь объект, а не только идентификатор foriegnkey.Не уверен, как это сделать, потому что он не показывает, как это сделать в документации.
Вот код:
Страница просмотров:
from users.models import Profile
from ..serializers import ProfileSerializer
from rest_framework import viewsets
class ProfileViewSet(viewsets.ModelViewSet):
queryset = Profile.objects.all()
lookup_field = 'user__username'
serializer_class = ProfileSerializer
Существует внешний ключ пользователя, ссылающийся на пользователя.
URL:
from users.api.views.profileViews import ProfileViewSet
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'', ProfileViewSet, base_name='profile')
urlpatterns = router.urls
Сериализатор:
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = (
'id',
'user',
'synapse',
'bio',
'profile_pic',
'facebook',
'twitter'
)
Вот как это выглядит:
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 1,
"user": 3,
"bio": "software engineer",
"profile_pic": "http://127.0.0.1:8000/api/user/profile/profile_pics/allsum-logo-1.png",
"facebook": "http://www.facebook.com/",
"twitter": "http://www.twitter.com/"
}
]