次のようなカスタム モデル マネージャーがあります。
class MyManager(models.Manager)
def get_query_set(self):
'''Only get items that are 'approved' and have a `pub_date` that is in
the past. Ignore the rest.'''
queryset = super(MyManager, self).get_query_set()
queryset = queryset.filter(status__in=('a',))
return queryset.filter(pub_date__lte=datetime.utcnow())
そして、これは十分に機能します。ただし、Djangoのgeneric.list_detail
ビューの使用に問題がobject_detail
あり、クエリセットは1回object_list
しかロードされていないようで、このため、本来あるべきアイテムをフェッチしていません。最初にロードされます)。utcnow()
これは意図的なものであり、パフォーマンスの向上を意図していると思いますが、ビューで使用できるようになる前に、サイトの他の場所 (ビューにない場所) にビデオが表示されることを意味します(以下のurls.py を参照)。これは 404 につながります...object_detail
object_detail
何か案は ?または、これを回避するために独自のカスタム ビューを作成する必要がありますか?
ありがとう!
urls.py
url(r'^video/(?P<object_id>\d+)$',
list_detail.object_detail,
{ 'queryset': Video.objects.all(), },
name='video_detail',
),