get_next_by_foo и get_previous_by_foo удобны, но очень ограничены - они не помогут вам, если вы заказываете более одного поля или поле без даты.
Я написал django-next-prev как более общую реализацию той же идеи. В вашем случае вы можете просто сделать это, так как вы установили порядок в своей мета:
from next_prev import next_in_order, prev_in_order
from .models import Photo
photo = Photo.objects.get(...)
next = next_in_order(photo)
prev = prev_in_order(photo)
Если вы хотите сделать заказ на какую-то другую комбинацию полей, просто передайте набор запросов:
photos = Photo.objects.order_by('title')
photo = photos.get(...)
next = next_in_order(photo, qs=photos)