-1

(CBV) スーパークラス (DjangoViewと mixin から継承) とそのための複数のサブクラスがあります。

すべてのサブクラスでまったく同じ機能を実装する必要がありますが、実際の親クラスは、Django のView.

したがって、実際には、次の方法で同じサブクラス機能を利用できるようにする必要があります。

  1. 異なる URL (または実際には異なる URLプレフィックスと同じ URL セット)
  2. 別のdispatch()方法 (すべてのサブクラスに共通ですが、両方のセットで異なります)

これを行う最も賢明な方法は何ですか?

EDIT:実際には、これを簡単な方法で変更することで解決できると思います

URL があった場合、およびURL があった場合dispatch()に呼び出すように変更します。dispatchA()/a/...dispatchB()/b/.../

問題は次のとおりです: __Django で同じものを異なるプレフィックスでpattern(...)2 回使用しても問題ありませんか。urlpatterns()

b = True追加のクレジットとして、後者のパターンにkwarg ( など) を追加する方法を考えてください。

4

3 に答える 3

1

アンチパターンと思われるこれで炎上することはわかっていますが、これらのケースでは多重継承を使用し、共有された「子」をミックスインとして扱います。

于 2013-04-10T07:00:50.293 に答える