Похоже, вы просто относитесь к сериалу как к серии эпизодов.Если это так, то почему бы не найти что-то вроде
Episode.objects.filter(series=some_series,number__gte=epnum-2, number__lte=epnum+2)
, чтобы найти эпизоды, окружающие эпизод epnum
, в особых случаях, когда epnum-2<=0
или epnum+2>Episode.object.filter(series=some_series).order_by('-number')[0].number
?
если, скажем, к эпизодам на сезонных перерывах нужно относиться иначе, вам нужно сделать что-то более сложное, например, то, что предлагает @Scott.Но в остальном я считаю, что этого простого решения будет достаточно.