How to recognise urls starting with anchor(#) in urls.py file in django?
Question: I have starting building my application in angularJS and django, and after
creating a login page, I am trying to redirect my application to a new url
after successful login. I am using `$location` variable to redirect my page.
Here is my code:

    
    
    $scope.login = function() {
        $http({
            method: 'POST',
            data: {
                username: $scope.username,
                password: $scope.password
            },
            url: '/pos/login_authentication/'
        }).then(function successCallback(response) {
            user = response.data
            console.log(response.data)
            if (user.is_active) {
                $location.url("dashboard")
            }
        }, function errorCallback(response) {
            console.log('errorCallback')
        });
    }
    

My initial url was `http://localhost:8000/pos/`, and after hitting the log in
button, the above function calls, and I am redirected to
`http://localhost:8000/pos/#/dashboard`. But I am unable to catch this url in
my regex pattern in `urls.py` file:

My project `urls.py` file:

    
    
    from django.conf.urls import url, include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^pos/', include('pos.urls')),
        url(r'^admin/', admin.site.urls),
    ]
    

And my `pos` application's `urls.py` file:

    
    
    urlpatterns = [
        url(r'^$', views.index, name='index'),
        url(r'^login_authentication/$', views.login_authentication, name='login_authentication'),
        url(r'^#/dashboard/$', views.dashboard, name='dashboard')
    ]
    

Using this, I am getting the same login page on visiting this
`http://localhost:8000/pos/#/dashboard` link. This means that in my `urls.py`
file of my `pos` application, it is mapping my
`http://localhost:8000/pos/#/dashboard` to first object of
`urlpatterns`:`url(r'^$', views.index, name='index')`. How do I make python
differentiate between both the links?


Answer: You have some major misunderstanding about and anchor in url. The anchor is
called officially [`Fragment
identifier`](https://en.wikipedia.org/wiki/Fragment_identifier), it's not part
of the main url, so if you have `#` when you visit an url like
`http://localhost:8000/pos/#/dashboard`, your browser would treat the
remaining `#/dashboard` as the anchor in page that
`http://localhost:8000/pos/` renders. You shouldn't be even using it in your
`urls.py` definition. Please read the link above more carefully about the
usage of an anchor.

