2016-03-23 5 views
1

ユーザーからの入力を受け取り、入力に基づいてクエリを作成し、変数のdataにクエリの結果を格納するフォームを生成しました。
変数dataのデータを表示するページ(display.html)をレンダリングします。
display.htmlにマップするURLはどのように定義しますか?
display.htmlのビューを別に定義する必要はありますか?はいの場合、変数dataを新しいビューに渡すにはどうすればよいですか?
これを達成する正しい方法は何ですか? Generic date views
これは私のviews.pyファイル、displayform機能がフォームからの入力に基づいたクエリの作成と結果の表示

def displayform(request,user_pk): 
    user=User.objects.get(id=user_pk) 
    if request.user.is_active and request.user.id==user.id: 
     if request.user.is_authenticated(): 
      if request.POST: 
       form=InpurDateForDisplay(request.POST) 
       if form.is_valid(): 
        dd=form.cleaned_data['dd'] 
        mm=form.cleaned_data['mm'] 
        yy=form.cleaned_data['yy'] 
        data=user.link_set.filter(date=datetime.date(day=dd,month=mm,year=yy)) 
        return render_to_response('app1/display.html',{'data':data,}) 
      else: 
       form=InpurDateForDisplay() 
      return render(request,'app1/displayform.html',{'form':form,}) 
    else: 
     return render(request,'app1/error.html') 
+0

あなたの質問は明らかではありません。ビューに必要なURLは1つのみです。どのような正確な問題がありますか? –

+0

出力ページ(display.html)のURLを書き込んでいるうちに、どのようなビューをURLにマップする必要がありますか? –

+0

私はこの問題を解決しました。私はDateTimeFieldフィールド型を使用していましたが、私のクエリはDateFieldフィールド型を提供していました。エラーをURLマッピングの問題と混同しました。今私はあなたのポイントを持って、私はdisplay.htmlのために別のURLを必要としない、それはすでにフォームが生成されたビューの内部からレンダリングされています。ありがとう:) –

答えて

0

フォームとその入力を処理しているDjangoは、時間ベースのコンテンツを表示するための汎用ビューのセットを持っています。

モデルを変更しない場合は、GETパラメータを使用して結果をフィルタリングする必要があります。以下のような

何か:

def displayform(request, user_pk): 
    user=User.objects.get(id=user_pk) 
    if request.user.is_active and request.user.id==user.id: 
     if request.user.is_authenticated(): 
      date = request.GET.get('date', None) 
      links = user.link_set.all() 
      if date: 
       date = datetime.datetime.strptime(date, <your date format>).date() 
       links = links.filter(date=date) 
      return render_to_response('app1/display.html',{'data':links, 
              'form': InpurDateForDisplay()}) 

    else: 
     return render(request,'app1/error.html') 
+0

私はこの混乱から抜け出すと、一般的な日付のビューを通過します。ありがとう:) –

関連する問題