Django:モデルフィールドから選択肢を取得するためのクエリセット

ジョセフ・チェン

私は、ユーザーが埋められていないタイムスロットにサインアップできる簡単な予約アプリを持っています。ユーザーは日付を選択し、その日に使用可能なタイムスロットをデータベースに照会します。まだ利用可能なタイムスロットを取得するためにクエリを作成するにはどうすればよいですか?

models.py

class Appointment(models.Model):
    TIMESLOT_LIST = (
        (1, '10:00 – 11:00'),
        (2, '11:00 – 12:00'),
        (3, '12:00 – 13:00'),
        (4, '13:00 – 14:00'),
        (5, '14:00 – 15:00'),
        (6, '15:00 – 16:00'),
        (7, '16:00 – 17:00'),
        (8, '17:00 – 18:00'),
        (8, '18:00 – 19:00'),
    )

    date = models.DateField(default=date.today)
    timeslot = models.IntegerField(choices=TIMESLOT_LIST, null=True)

views.py

def make_appointment(request):
    all_appointments = Appointment.objects.values_list('timeslot')
    appointments = Appointment.objects.filter(user=request.user)
    data_input = request.GET.get('date')

    available_appointments = Appointment.objects.filter(
        date = data_input
    ).exclude(timeslot = appointments).values_list(
        'timeslot'
    ).order_by('timeslot')

    return TemplateResponse(
        request,
        'scheduling/appointment.html',
        {
            "appointments" : appointments,
            "all_appointments" : all_appointments,
            "data_input": data_input
        }
    )
markwalker_

次のようにして、利用可能な時間の新しいリストを作成できます。

available_appointments = [
    (value, time) for value, time in TIMESLOT_LIST if value not in all_appointments
]

または、タプルが必要な場合。

tuple(
    (value, time) for value, time in TIMESLOT_LIST if value not in all_appointments
)

次に、テンプレートでそれらの選択肢を提供して、人々が選択できるようにします。

ターミナルからの例。

>>> [(value, time) for value, time in TIMESLOT_LIST if value not in [1, 2, 3]]
[(4, '13:00 – 14:00'), (5, '14:00 – 15:00'), (6, '15:00 – 16:00'), (7, '16:00 – 17:00'), (8, '17:00 – 18:00'), (8, '18:00 – 19:00')]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Django-拡張ユーザーモデルからフィールドを取得するためのクエリセット

分類Dev

Djangoクエリセットの注釈、選択肢のある文字フィールド、および表示値を取得しようとしています

分類Dev

個別のフィールドごとに最大IDを選択するためのdjangoクエリセット

分類Dev

djangoクエリセットで逆関連モデルのフィールドの値を取得する

分類Dev

何千ものデータベースクエリを作成する何千もの選択肢を持つDjango選択フィールド

分類Dev

Django - モデルの選択肢が表示された場合、Choice タプルから値を取得する方法は?

分類Dev

Djangoクエリセットはモデルフィールドの名前を取得します

分類Dev

関連するモデルクエリセットのすべてのフィールドを延期するdjango

分類Dev

2つのテーブルからいくつかのフィールドを選択してカウントするためのMySQLクエリ

分類Dev

djangoモデルで選択肢フィールドの値を除外する方法は?

分類Dev

Djangoクエリセット-3番目のモデルからデータを取得する際の問題

分類Dev

@ElementCollectionからフィールドを取得するためのHQLクエリ

分類Dev

選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

分類Dev

Djangoはクエリセットからform.ChoiceFieldフィールドにデータを入力し、選択内容をモデルオブジェクトに関連付けます

分類Dev

django-モデルに存在しないクエリセットのフィールドを付加する

分類Dev

Django-他のモデルからpkを取得するためのクエリ

分類Dev

データベースからフィールド値を取得するための動的LINQクエリ

分類Dev

Wagtailページモデルを使用してクエリセット内の外部キーの特定のフィールドを取得するための最も効率的な方法は何ですか

分類Dev

テーブルフィールドを選択するためのMysql選択クエリ

分類Dev

Djangoモデルの選択フィールドをReactjsの選択オプションに接続するための最良の方法は何ですか

分類Dev

ポリモーフィズムとの1対多の関係のクエリセットから関連モデルを取得する

分類Dev

Djangoクエリセットの最適化-注釈付きフィールドの選択を防止します

分類Dev

OnetoOneモデルのフィールドでクエリセットをフィルタリングする

分類Dev

モデルからドロップダウンリストで選択したオプションを取得するための最良の方法

分類Dev

パックマン:パッケージの交換を求められたときにデフォルトの選択肢を選択するにはどうすればよいですか?

分類Dev

外部キーを介してmanytomanyfiledのクエリセットを取得する方法(モデルには2つのフィールドしかありません)

分類Dev

同じモデルの2つの日付フィールドを比較するDjangoクエリセットフィルターを作成する方法

分類Dev

Djangoは、m2mからモデルまでのフィールドごとにクエリセットに注釈を付けます

分類Dev

年と月の特定の範囲からデータをフィルタリングするためのクエリを選択します

Related 関連記事

  1. 1

    Django-拡張ユーザーモデルからフィールドを取得するためのクエリセット

  2. 2

    Djangoクエリセットの注釈、選択肢のある文字フィールド、および表示値を取得しようとしています

  3. 3

    個別のフィールドごとに最大IDを選択するためのdjangoクエリセット

  4. 4

    djangoクエリセットで逆関連モデルのフィールドの値を取得する

  5. 5

    何千ものデータベースクエリを作成する何千もの選択肢を持つDjango選択フィールド

  6. 6

    Django - モデルの選択肢が表示された場合、Choice タプルから値を取得する方法は?

  7. 7

    Djangoクエリセットはモデルフィールドの名前を取得します

  8. 8

    関連するモデルクエリセットのすべてのフィールドを延期するdjango

  9. 9

    2つのテーブルからいくつかのフィールドを選択してカウントするためのMySQLクエリ

  10. 10

    djangoモデルで選択肢フィールドの値を除外する方法は?

  11. 11

    Djangoクエリセット-3番目のモデルからデータを取得する際の問題

  12. 12

    @ElementCollectionからフィールドを取得するためのHQLクエリ

  13. 13

    選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

  14. 14

    Djangoはクエリセットからform.ChoiceFieldフィールドにデータを入力し、選択内容をモデルオブジェクトに関連付けます

  15. 15

    django-モデルに存在しないクエリセットのフィールドを付加する

  16. 16

    Django-他のモデルからpkを取得するためのクエリ

  17. 17

    データベースからフィールド値を取得するための動的LINQクエリ

  18. 18

    Wagtailページモデルを使用してクエリセット内の外部キーの特定のフィールドを取得するための最も効率的な方法は何ですか

  19. 19

    テーブルフィールドを選択するためのMysql選択クエリ

  20. 20

    Djangoモデルの選択フィールドをReactjsの選択オプションに接続するための最良の方法は何ですか

  21. 21

    ポリモーフィズムとの1対多の関係のクエリセットから関連モデルを取得する

  22. 22

    Djangoクエリセットの最適化-注釈付きフィールドの選択を防止します

  23. 23

    OnetoOneモデルのフィールドでクエリセットをフィルタリングする

  24. 24

    モデルからドロップダウンリストで選択したオプションを取得するための最良の方法

  25. 25

    パックマン:パッケージの交換を求められたときにデフォルトの選択肢を選択するにはどうすればよいですか?

  26. 26

    外部キーを介してmanytomanyfiledのクエリセットを取得する方法(モデルには2つのフィールドしかありません)

  27. 27

    同じモデルの2つの日付フィールドを比較するDjangoクエリセットフィルターを作成する方法

  28. 28

    Djangoは、m2mからモデルまでのフィールドごとにクエリセットに注釈を付けます

  29. 29

    年と月の特定の範囲からデータをフィルタリングするためのクエリを選択します

ホットタグ

アーカイブ