私は次の状況にあります:
これは私のviews.py
です:
def home(request):
date = datetime.date.today()
start_week = date - datetime.timedelta(date.weekday() + 1)
end_week = start_week + datetime.timedelta(6)
week_tasks = Task.object.filter(owner=request.user, start_date__range=[start_week, end_week])
context = {}
context['week_tasks'] = week_tasks
return render(request, 'home.html', context)
このビューは、start_date
(DateField)が現在の週の範囲内にあるかどうかを確認します。しかし、データベースに別のフィールドがありend_date
、この範囲の値が今週のものであるかどうかを確認したいと思います。
例を確認してください。現在の週が17日の週であると仮定しましょう。私の現在のビューでは、終日のイベントと会議のみがその週に属します。これらすべてのイベントがその週に属していることを示す必要があります。
Obs。:週の前に始まり、週の後に終わるロングイベントの状況があるため、週にあるかどうかstart_date
を確認することはできません。end_date
views.py
:
def home(request):
date = datetime.date.today()
if date.isoweekday() == 7:
date = date + datetime.timedelta(1)
start_week = date - datetime.timedelta(date.isoweekday())
end_week = start_week + datetime.timedelta(6)
week_tasks = Task.object.filter(owner=request.user).exclude(end_date__lt=start_week).exclude(start_date__gt=end_week)
context = {}
context['week_tasks'] = week_tasks
return render(request, 'home.html', context)
週ウィンドウは次のように定義されます:week_start、week_end
タスクは次のように定義されます:task_start、task_end
次の場合、タスクは週と重複しています。
task_start < week_end and task_end >= week_start
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加