У меня есть модель, которая называется GameProfile
, которая является отношением "один к одному" с моделью User
. Я использовал HyperlinkedModelSerializer
во всем моем дизайне.
Для GameProfile
поле пользователя должно быть основным ключом для запроса, оно уникально, но я не настроил его как первичный ключ. Есть ли способ изменить поведение по умолчанию для django serializer, чтобы указать на user__id
в качестве первичного ключа и всегда использовать его для получения профиля в подробном представлении?
class GameProfileSerializer(serializers.HyperlinkedModelSerializer):
"""
"""
user_pk = serializers.Field(source='user.id')
class Meta:
model = GameProfile
class GameProfileViewSet(viewsets.ModelViewSet):
"""
"""
queryset = GameProfile.objects.all()
serializer_class = GameProfileSerializer
def get_queryset(self):
""" get_queryset
"""
queryset = super(GameProfileViewSet, self).get_queryset()
if not queryset.exists():
raise Http404
if self.request.user.is_authenticated() and not self.request.user.is_superuser:
return queryset.filter(user=self.request.user)
return queryset
пожалуйста, сообщите, спасибо заранее:)