2

form.save()の戻り型がこの場合は CategoryQuestionオブジェクトであることをpycharmに伝えるにはどうすればよいですか?

def category_ask(request):
    if request.method == 'POST':
        form = CategoryQuestion_form(request.POST)
        if form.is_valid():
            question = form.save(commit=False)
            question.who = request.user
            question.dat<tab>
4

4 に答える 4

5

assertisinstance(x、Type)」を使用して、pycharmを偽造してローカル変数の適切なタイプを認識させます。Pycharmは適切なタイプを認識し、タブ補完が機能します。

def category_ask(request):
    if request.method == 'POST':
        form = CategoryQuestion_form(request.POST)
        if form.is_valid():
            question                = form.save(commit=False)
            assert isinstance(question, models.CategoryQuestion)
            question.who            = request.user
            question.date_created<tab>

pycharm 1.2の時点では、残念ながら、チェックされていない裸の「 isinstance() 」を使用することはできません。アサートが必要です。

于 2012-06-16T06:09:18.263 に答える
4

PyCharm 3 (以前のバージョンについては不明) は、:typeまたは@type docstring を介したローカル変数 (およびパラメーター) の型ヒントをサポートしています。

 def category_ask(request):
    if request.method == 'POST':
        form = CategoryQuestion_form(request.POST)
        if form.is_valid():
            # :type models.CategoryQuestion
            question = form.save(commit=False)
            question.who = request.user
            question.dat<tab>

公式ドキュメントをチェックしてください: http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html#d68026e604

于 2013-09-18T06:58:13.403 に答える
3

Pycharm 3 では、ローカル変数の@typeヒントはうるさいですが、機能します。割り当ての後の行に表示する必要があり、三重引用符の構文が必要なようです。

        if form.is_valid():
            question = form.save()
            """@type : CategoryQuestion"""
            question.dat<tab>

公式ドキュメントをチェックしてください: http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html#d68026e604

于 2014-09-02T20:47:54.057 に答える