Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django抑制异常?_Python_Django_Django Forms - Fatal编程技术网

Python Django抑制异常?

Python Django抑制异常?,python,django,django-forms,Python,Django,Django Forms,被难以发现的不当行为所困扰。数小时后,Django似乎抑制了AttributeError以及其他可能的异常: from django import forms class MyBaseForm(forms.ModelForm): class Meta: model = MyModel fields = ('field1', 'field2', ) … class MyForm(MyBaseForm): def clean_field1(

被难以发现的不当行为所困扰。数小时后,Django似乎抑制了
AttributeError
以及其他可能的异常:

from django import forms

class MyBaseForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ('field1', 'field2', )
    …

class MyForm(MyBaseForm):
    def clean_field1(self):
        super(MyForm, self).clean_field1()   # calling non-exitsting method
        # instead of AttributeError exception being raised,
        # following code is not executed without a warning
        return self.another_field_handler('field1')

有人能解释这种令人惊讶的行为对于Django表单是否正常吗?某些链接记录在哪里?

除了它没有捕获任何
属性错误之外。未调用
clean_field1()
,或者
super()。clean_field1
存在。@knbk如果我使用try/except包装
super(MyForm,self)。clean_field1()
,则捕获
AttributeError
异常并执行以下代码。如果不处理异常(如问题中所述),它将不会传播并被默默忽略。不,不会发生这种情况。如果调用
MyForm().clean\u field1()
,您将得到一个AttributeError。@DanielRoseman
MyForm().clean\u field1()
确实会引发AttributeError,但它会被堆栈中的某个地方吞没-日志中没有关于异常的信息,下一个视图会正确呈现。Django正在使用
DEBUG=True
设置运行。我如何找出异常在哪里被沉默?您需要显示实际视图作为发生这种情况的证据。在任何表单类中都没有代码来消除这样的错误。