2016-11-07 4 views
2

私は最初のバックエンドプロジェクトである私の最初のdjangoプロジェクトに取り組んでいます。私が完了したチュートリアル/読書では、モデルフォームなしで情報をdjangoに渡すことはありませんでした。Django - 初心者 - 情報をURL経由でビューに渡すプロセスは何ですか?

私の意図は、javascriptを使用してページ上の値を計算し、ユーザーがそのページ上の送信ボタンを押したときにdjangoに渡すことです。送信ボタンは、別のページへのリンクにもなります。私はdjangoに情報を戻す方法を知っていれば、私はURLを介してビュー内の情報を処理できることを知っています。

私は、djangoがMVCを使用していることを知っています。私はモデルとビューを適切に配置しているので、これはコントローラと関係があると考えています。

基本的に、あるユーザーが別のページへのリンクをたどると、ページからdjangoに情報を渡す方法を知りたいと思います。私はこれが特定のトピックに関するステップバイステップの長いステップの場所ではないことを理解していますが、このトピックに関するリソースへのリンクはありがたいです。私はこのプロセスが呼び出されたかどうかわからないので、ドキュメントを検索することはできません。

EDIT: さらに読むことから、私は値をGETまたはPOSTするために送信ボタンを使用したいと思っています。この特定のケースでは、おそらくPOSTが優れています。誰かがこれが本当であることを確認できましたか?

答えて

2

を参照してください。一般的に、POSTはGETよりもデータを送信する優れた方法です。 Djangoには用語に関する混乱があります。 DjangoはMVCですが、モデルはモデルですが、ビューは実際にはコントローラであり、ビューはテンプレートです。 AJAXを使用してデータを提出して検索するので、テンプレートは気にしません。それでは、あなたが最も可能性の高いたいのは、あなたの意見で

 
url(r'mything/$', MyView.as_view()) 

変数あなたのurlpatternsの一環として、あなたのurls.pyでこの

のようなものです。PY

 
from django.views import View 
from django.http import HttpResponse 

class MyView(View): 
    def post(self, request): 
     data = request.POST 
     ... do your thing ... 
     return HttpResponse(results) 

とあなたのJavaScriptで

 
jQuery.post('/mything/', data, function() { whatever you do here }) 
1

さまざまな方法がありますが、これはdjangoで実現できます。以下は、私は一般的に好むことを、2つの方法があります。 - URL

eg. http://localhost/getPatientInfo?patientId=23&name=Sachin 

2)URLが動的作成でクエリ文字列パラメータとして

1)は、ビュー自体の情報を含めること。ケース1では

eg. http://localhost/patientInfo/23/Sachin 

: - あなたは、ケース2では

patientId = request.GET["patientId"] 
name  = request.GET["patientName"] 

を行う必要があります。 あなたのURL confのようなものになります。

urls = [ 
    url("^patientInfo/(\d+)/([^/]+)$", yourViewFunc) 
] 

そして、あなたのビューでfunc: -

def yourViewFunc(request, patientId, patientName): 
     # your logic goes here 
     pass 

情報についてURLConfに関連して、https://docs.djangoproject.com/en/1.10/topics/http/urls/#example

+0

あなたの答えをありがとう、私は私がモデルデータを使用したいとURLにそれを渡していなかったと言っで十分に明確ではなかったと思います。おそらくjavascriptを使ってページ上に変数を生成したかったのです。ユーザーがsubmitボタンをクリックすると、その変数をdjangoに渡して、urlのビューで処理できるようにします。 – Era

+1

@Era JS変数をリンク経由で渡すことができます。たとえば、yourwebsite.com/jsvarです。あなたはそれを行う前にURLと表示で適切な設定を行う必要があります。 –

関連する問題