2017-03-22 11 views
0

リクエストモジュールとともにユーザーの詳細を送信できません。ユーザーを識別するためにユーザーの詳細をデータペイロードにハードコードする必要がありました。Pythonリクエストモジュールでユーザーデータを送信する

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) 

リクエストを使用してすべての一般的なリクエストデータを送信する方法はありますか。

しかも要求は、URLが要求モジュールを使用しているとき、私は、要求を検証する必要がありますどのように一般的に要求モジュール を介して到達したとき、私は

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

そしてrequest.user.idを実装している先のビューはなしURL

+1

これは、間違いなくハードコーディングではありません。 – e4c5

+0

@ e4c5これは、コード全体のサブコードです他の多くのユーザーのパラメータもあります.. – user3411846

+0

次に読んで:http://stackoverflow.com/help/how-to-ask – e4c5

答えて

1

Djangoは、要求と応答オブジェクトを使用して、システムに状態を​​渡します。

ページが要求されると、Djangoは要求に関するメタデータを含むHttpRequestオブジェクトを作成します。そして、Djangoは適切なビューをロードし、HttpRequestをビュー関数の最初の引数として渡します。各ビューは、HttpResponseオブジェクトを返す責任があります。

Djangoのcontribアプリケーションに含まれるミドルウェアの中には、リクエストの属性を設定するものがあります。要求に属性が表示されない場合は、authenticationmiddleware、sessionmiddlewareなどの適切なミドルウェアクラスを確認してください。

次のコードは、ユーザーが認証されている場合にのみuser.idを与えます。

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

私が正しくあなたの質問を理解している場合、あなたは1つのビューの要求を取得した後、要求モジュールを使用して、他のビューに呼び出しを行っています。この場合、インデックスビューのリクエストオブジェクトは、アプリケーションが動作するサーバーから送信されたものであり、ユーザーからのものではないため、要求とはまったく異なります。 request.GET.get("userid")などを使用して、インデックスビューでのみデータを取得することができます。ユーザー情報が必要な場合は、useridを使用してデータベースから再度取得してください。要求ライブラリを使用して要求オブジェクトを他のビューに渡すことはできません。

関連する問題