Django Ajax: установка url с двумя динамическими путями url (<str:'variable'>/<str:'other_variable'>/get/)

У меня есть шаблон Django ajax, который будет получать всех игроков из модели игроков:

<body>
   <h1>List of Players:</h1>

   <ul id="display-data">
   </ul>
</body>

<script>
  $(document).ready(function(){
  
      setInterval(function(){
          $.ajax({
              type:"GET",
              url: "{% url 'getPlayers' %}", # Here is where I think the problem is
              success: function(response){
                  console.log(response);
              },
              error: function(response){
                  alert("An error occured")
              }
          });
      },1000);
  
  })
  
  </script>

Однако мой файл urls.py для шаблона, для которого мне нужно запустить это, является динамическим url:

urlpatterns = [
    path('<str:league_id>/<str:league_title>/draft/', draft, name='draft'),

    path('<str:league_id>/<str:league_title>/getPlayers/', getPlayers, name="getPlayers"),
]
# Include url path is /league/

Проблема в том, что url, заданный в функции Ajax, не включает league_id и league_title. Кто-нибудь знает, как добавить эти параметры при задании пути url для функции Ajax? Или если это вообще проблема моей установки?

Вот мой views.py для draft и get:

def draft(request, league_id, league_title):
    league = League.objects.get(id=league_id)

    context = {'league': league}

    return render(request, 'league/draft.html', context)



def getPlayers(request, league_id):
    league = League.objects.get(id=league_id)
    players = league.available_player.all()

    return JsonResponse({'players': list(players.values())})

Вы можете добавить league_id и league_title динамически следующим образом:

$(document).ready(function(){  
    setInterval(function(){
      const league_id = '1' //You need to get these from DOM
      const league_title = 'foo bar'
      $.ajax({
          type:"GET",
          url: `/${league_id}/${league_title}/getPlayers/`,
          success: function(response){
              console.log(response);
          },
          error: function(response){
              alert("An error occurred")
          }
      });
  },1000);

})
Вернуться на верх