そこで、ジェネリック クラス ベースのビューを使い始めましたが、時間を節約できると言わざるを得ません。しかし、各ビューでコーディングするのではなく、ミックスインを使用して一般的な impl を提供できるかどうか疑問に思っていました。たとえば、 と がListView
ありDetailView
ます。get_queryset()
リストと編集を制限するために、ログインしているユーザーでオーバーライドしてフィルター処理できます。しかし、ご想像のとおり、各ビューでそれを行う必要があります。
class JediListView(ListView):
def get_queryset(self):
q = <call super>.filter(user=request.user) #assume i have 'login_required' in the urls
class JediDetailView(DetailView):
def get_queryset(self):
q = <call super>.filter(user=request.user) #assume i have 'login_required' in the urls
ビューごとに新しい親クラスを作成できますが、それでもコードを繰り返すことになります。
class RepublicListView(ListView):
# override get_queryset code as above
class JediListView(RepublicListView):
# repeat fot DetailView, DeleteView, UpdateView
私はミックスインについて疑問に思っていました.ミックスインがどのように機能するかを正確に確信しています[Javaのバックグラウンドから、同時に畏敬の念と恐れを抱いています]