내 이미징 사이트의 다음 및 이전 레코드를 선택하는 데 문제가 있습니다. Scenrio는 매우 간단합니다. 하지만 조금 혼란 스러웠습니다.다음 및 이전 이미지를 가져 오는 가장 좋은 방법 Django
나는 그들이 추가 된 날짜순으로 정렬 된 이미지 목록을 가지고 있습니다. (가장 최근의 초기).
Picture.objects.all().order_by('-created_at')
사용자가 이미지를 열면 다음 및 이전 그림에 대한 링크를 제공해야합니다. 두 개 이상의 사진 같은 created_at 일이있을 때
여기image = Picture.objects.get(id=pic_id)
next = Picture.objects.filter(created_at__lte=image.created_at)
previous = Picture.objects.filter(created_at__gte=image.created_at)
if next:
next = next.exclude(id=image.id).order_by('-created_at')[0]
if previous:
previous = previous.exclude(id=image.id).order_by('created_at')[0]
return (next, previous)
문제는, 다음 less than or equal
검사가 실패, 문제가있는 것입니다. 그림을 less than
으로 제한하면 다음 또는 이전 날짜와 시간이 같은 그림이 선택되지 않습니다. `
코드를 확인하고 내가이 향상되어야하는 부분을 참조하시기 바랍니다 (멀티 파일 업로드가 동시에 DB에 이미지를 저장).
감사합니다.
Andrew의 대답에 따라 ID도 정렬해야합니다. 그냥'DateField' 대신'DateTimeField'를 사용하여 언급 할 가치가 있다고 생각했습니다. – Anentropic