私は現在djangoアプリを実装しています。このため、Djangoの構文と一致する構文を使用しようとしています...
だからここに私が試しているものがあります:
class Blablabla(Model):
#this contains Blablabla's options
class Meta:
sort_key = lambda e: e
sort_key
は(ソートの目的で)重要な関数ですが、もちろん、Meta
のメソッドとして理解されています(これは絶対に私が望むものではありません)!!!
これに対する回避策はありますが、それでもこの構文を使用できますか?
編集:ちょうど重要な精度...私が書いたコードは、ライブラリを使用する誰かによって書かれることになっています!だから私は汚いトリックをしたくないのです。そして、DjangoではYESです。これは、実際にはオプションにのみ使用されます...もちろん、Metaはクラスですが、クラスとして使用されないため、「クラスとしては表示されません」と言います。インスタンス化しないでください。クラスメソッドを配置せず、クラス属性のみを配置します...には、これからすべてを抽出し、宣言されたすべてのオプションを処理Model
するメタクラスがあります...しかし、それだけです!Meta
これは、オプションの単なるプレースホルダーです。
しかし、それは本当です。Djangoの関数であるオプションを見たことがありません...したがって、Nedに従って、この並べ替え関数をそのメソッドとしてModel
オーバーライドする必要があると宣言します...