2016-04-12 18 views
0

Ich mache einen einfachen Code-Editor. Jedem Benutzer wird eine sechsstellige ID zugewiesen, die an die URL angehängt werden muss. Wenn also jemand auf die Seite unter localhost:8000/myapp/ zugreift, muss die URL auf localhost:8000/myapp/<token> geändert werden.Django - URL ändern im Browser angezeigt

ich die folgende Funktion bin mit, dass Token Schlüssel zu generieren -

def id_generator(self,size=6, chars=string.ascii_lowercase + string.digits): 
     return ''.join(random.choice(chars) for _ in range(size)) 

ich eine Middleware erstellt haben, aber ich bin verwirrt, wie weiter verfahren ist. Was soll ich verwenden - process_request() oder process_response()?

Und wie zeige ich eine von ihnen, so dass URL ändert sich aber die Funktionalität bleibt gleich.

Antwort

1

Wenn ich rechts:

eine Ansicht schreiben für localhost:8000/myapp/ In dieser Ansicht Ihre Token erzeugen und leiten sie dann an neue URL aus der Sicht.

def mytoken(request): 
    token = '0-wedfbdhfgm' 

    return redirect(localhost:8000/myapp/token='+token) 
0

Dies ist ein zweistufiger Prozess. Sie müssen

  • eine Ansicht mit einer entsprechenden URL erstellen Sie Ihre individuellen Token
  • eine Ansicht mit einer passenden Namen URL abgerufen wird das Ergebnis an die
Benutzer bereitzustellen

urls.py

... 

url(r'^myapp/(?P<token>\w+)/$', views.your_user_result_view, name='your-user-result-view'), 
url(r'^myapp/$', views.your_token_appender_view, name='your-token-appender-view'), 

... 

views.py

... 

def your_user_result_view(request): 
    ... 

def your_token_appender_view(request): 
    token = ... 

    redirect(reverse('your-user-result-view',kwargs={'token':token})) 

... 
Verwandte Themen