Wa:tta Taxi (3)


♥#今日は覚えておきたいこと!
  • none値の場合、
  • departure_time                   = request.GET.get('departure_time', '1900-01-01 23:59')
            price                    = request.GET.get('price', 60000)
            taxi_company             = request.GET.getlist('taxi_company', ['Dasul Taxi', 'Taxi Choi-gging', 'Art Transportation', 'Lama 운수', 'DaMo taxi', 'Muy bien Trans'])
            sort                     = request.GET.get('sort', None)
    query parameterから値を受け取り、値に入るとOKですが、値に入らなければNone、そうでなければそのまま値を指定するべきです.価格なら6000がデフォルト、タクシー会社ならその値も指定します.
  • sort
  • sort_list = {
                'dep_time_late' : 'course__departure_time',
                'dep_time'      : '-course__departure_time',
                'price'         : '-price',
                 None           : '-price'
            }
            sort           = None if sort not in sort_list else sort
            sort_string    = sort_list[sort]
    schedules = Schedule.objects.filter(
                  Q(date=departure_date) 
                & Q(seat_type__name=seat_type) 
                & Q(course_id__in=[course.id for course in courses]) 
                & Q(seat_remain__gte = seat_remain)
                & Q(price__lte=price)
                & Q(course__taxi_company__name__in = taxi_company)
                & Q(course__departure_time__lte = departure_time)).order_by(sort_string)[0:300]
    sortの場合、sortリストを作成してsort値を指定し、値が入力されていない場合はdefault値-priceとして指定します.sort stringという変数にsort list[sort]を入れ、order byを使用して値をソートすれば、より簡単に処理できます.
  • Q
  • schedules = Schedule.objects.filter(
                  Q(date=departure_date) 
                & Q(seat_type__name=seat_type) 
                & Q(course_id__in=[course.id for course in courses]) 
                & Q(seat_remain__gte = seat_remain)
                & Q(price__lte=price)
                & Q(course__taxi_company__name__in = taxi_company)
                & Q(course__departure_time__lte = departure_time)).order_by(sort_string)[0:300]
    ここでQは、実施すべき条件を決定するために使用される.&接続.filterで一時停止すると、scheduleテーブルがデフォルトで参照されます.courseのtaxie company列のnameを取得するには、underbar(検索関数)を使用してcourse taxie company nameを書くと、他のテーブルを簡単に参照して必要な資料値を取得できます.
  • Gitをプッシュする前に...
    git add .
    git commit
    git checkout main
    git pull origin main
    git checkout feature/search(ブランチ)
    git rebase -i main
    git push origin feature/search
    お願いします.忘れないで・・・😳