2017-03-22 4 views
0

Ich bin nicht in der Lage, die Benutzerdetails zusammen mit Anfragen Modul senden Ich musste die Benutzerdetails in der Datennutzlast fest codieren, um den Benutzer zu identifizieren.Senden von Benutzerdaten in Python-Anfragen-Modul

full_url = ''.join(['http://', get_current_site(request).domain, '/am/reply']) 
    data = {  
       'agent_type':'trigger', 
       'input':platform, 
       'userid':request.user.id ####==>> had to send userid like this 
      } 
    a = requests.get(full_url,params=data) 

Gibt es Möglichkeit, alle allgemeinen Anfragedaten mit Anfragen zu senden.?

Und außerdem url die Anforderungen der Zielansicht i implementiert haben

def index(request): 
    if not request.user.is_authenticated: 
     return HttpResponseRedirect(reverse('login')) 

Und request.user.id ist keine, wenn url durch Anfragen Modul Im Allgemeinen erreicht ist, wie soll ich eine Anfrage zu validieren, wenn Anforderungen Modul

+1

Das ist definitiv nicht hart Codierung. – e4c5

+0

@ e4c5 dies ist ein Sub-Code des gesamten Codes gibt es viele andere Benutzer-Parameter auch .. – user3411846

+0

dann lesen: http://StackOverflow.com/Help/how-to-ask – e4c5

Antwort

1

Django verwendet Anfrage- und Antwortobjekte, um den Status durch das System zu übergeben.

Wenn eine Seite angefordert wird, erstellt Django ein HttpRequest-Objekt, das Metadaten zur Anforderung enthält. Dann lädt Django die entsprechende Ansicht und übergibt das HttpRequest als erstes Argument an die View-Funktion. Jede Ansicht ist für die Rückgabe eines HttpResponse-Objekts verantwortlich.

Einige der Middleware, die in Djangos Contrib-Apps enthalten sind, legen Attribute für die Anfrage fest. Wenn das Attribut für eine Anforderung nicht angezeigt wird, stellen Sie sicher, dass die entsprechende Middlewareklasse wie authenticationmiddleware, sessionmiddledleware.

folgender Code gibt die user.id, wenn und nur wenn der Benutzer authentifiziert ist.

def myview(request): 
    if request.user.is_authenticated: 
     print request.user.id 
    else: 
     ... # Do something else. 

https://docs.djangoproject.com/en/1.10/ref/request-response/

0

Wenn ich Ihre Frage richtig verstanden, Sie erhalten Anfrage auf einen Blick, und dann einen Anruf an andere Ansicht zu machen Anfragen Modul. In diesem Fall ist das Anfrageobjekt in der Indexansicht völlig anders, da diese Anfrage von Ihrem Server gesendet wurde, auf dem die Anwendung funktioniert, und nicht vom Benutzer. Sie können Daten nur in der Indexansicht mit request.GET.get("userid") usw. abrufen. Und wenn Sie Benutzerinformationen benötigen, holen Sie sie einfach erneut aus der Datenbank mit Benutzer-ID. Das Übergeben des Anforderungsobjekts an eine andere Ansicht mithilfe der Anforderungsbibliothek ist nicht möglich.

Verwandte Themen