How can I change a default lookup parameter for my custom action in DRF Viewset? Here is my Viewset (simplified)
class InvitationViewSet(MultiSerializerViewSet):
queryset = Invitation.objects.all()
@action(
detail=False,
#url_path='accept-invitation/<str:key>/',
#lookup_field='key'
)
def accept_invitation(self, request, key=None):
invitation = self.get_object()
with legal_invitation(invitation):
serializer = self.get_serializer(invitation)
invitation.accepted = True
invitation.save()
return Response(serializer.data)
I want when user enters url like /invitations/accept-invitation/abccba, where abccba is a random token string. key - is a unique field in Invitation model. I know I can set per-Viewset lookup_field='key', but I want all other actions still use default lookup_field='pk'. How can I achieve what I want?