4

以下にコードを示します(Django管理ビューに属し、わずかに変更されています)。私のIDE(PyCharm)は、最後の行で警告しますLocal variable 'ModelForm' might be referenced before assignment

それがどのように起こるかはわかりませんが、6行目をコメントアウトすると:

with transaction.commit_manually():

その後、警告は消えます。

私は何かが足りないのですか、それともPyCharmが何かが足りないのですか?

これがコードのチャンクです。私はそれをほんの数行に縞模様にしました、そしてそれはまだ警告を与えます。コードの元のチャンクはここにあります(70行):http://pastebin.com/4UT9hRPb

    ModelForm = self.get_form(request, obj, form=form)

    formsets = []
    if request.method == 'POST':
        # commit only when all forms are valid
        with transaction.commit_manually():
            try:
                objects = queryset.all()
                transaction.commit()
                return self.response_change(request, new_object)

            finally:
                general_error = unicode(sys.exc_info()[1])
                transaction.rollback()

    form = ModelForm()
4

1 に答える 1

0

この警告は発生しないはずですが、少なくとも理由はわかりません。おそらく、PyCharmがwithブロックのスコープを理解するのに問題があります。ただし、ブロックModelForm内の割り当てを移動することで、この警告を黙らせることができます。with

于 2012-11-03T13:22:59.023 に答える