10

CharField に基づいてカスタム Django モデル フィールド サブクラスを作成しましたが、to_python を使用して、返されるモデル オブジェクトがより複雑なオブジェクト (リスト、特定の形式の辞書など) を持つようにします。MySQL を使用しています。そのため、一部の PostGreSql フィールド タイプは使用できません。

すべてがうまく機能していますが、Pylint はこれらのフィールドのすべての値が文字列になると信じているため、これらのモデルを使用するコードで多くの「unsupported-membership-test」および「unsubscriptable-object」警告が表示されます。これらを個別に無効にすることもできますが、これらのモデルが特定のオブジェクト タイプを返すことを Pylint に知らせたいと思います。型ヒントは役に立ちません。例:

class MealPrefs(models.Model):
    user = ...foreign key...
    prefs: dict = custom_fields.DictOfListsExtendsCharField(
            default={'breakfast': ['cereal', 'toast'], 'lunch': []},
            )

特定の組み込み Django フィールドが Pylint (CharField、IntegerField) の正しい型を返し、他の特定の拡張機能がその型を指定する方法を見つけたので、Pylint は満足しています (MultiSelectField) が、それらのコードを掘り下げると、わかりません返されるタイプを指定する「魔法」はどこにありますか。

(注: この質問は、Django フォーム フィールドの INPUT:type とは関係ありません)

ありがとう!

4

2 に答える 2