Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 - Fatal编程技术网

Python 覆盖Django模型字段获取\准备\值方法

Python 覆盖Django模型字段获取\准备\值方法,python,django,Python,Django,从Django中的ForeignKey字段获取ValueError时,异常使用字段名返回响应“field…预期为数字,但得到…”。我想将此异常更改为使用verbose_名称(如果存在),如果不存在,则使用字段名称。如何覆盖所有ForeignKey字段的此异常 第1818行 def get_prep_值(self,value): value=super()。获取值(value) 如果值为“无”: 一无所获 尝试: 返回int(值) 除(TypeError、ValueError)外,如e: 提高e.

从Django中的ForeignKey字段获取ValueError时,异常使用字段名返回响应“field…预期为数字,但得到…”。我想将此异常更改为使用verbose_名称(如果存在),如果不存在,则使用字段名称。如何覆盖所有ForeignKey字段的此异常

第1818行

def get_prep_值(self,value):
value=super()。获取值(value)
如果值为“无”:
一无所获
尝试:
返回int(值)
除(TypeError、ValueError)外,如e:
提高e.。u级__(
字段“%s”需要一个数字,但得到了%r.%(self.name,value),
)从e

通过重写IntegerField和AutoField类,我最终得到了这个自定义错误消息

class CustomIntegerField(models.Field):
def get_prep_值(自身,值):
value=super()。获取值(value)
如果值为“无”:
一无所获
尝试:
返回int(值)
除(TypeError、ValueError)外,如e:
字段名称=self.name
如果self.verbose\u名称:
field\u name=self.verbose\u name
从e
类CustomAutoField(AutoFieldMixin,CustomIntegerField,metaclass=AutoFieldMeta):
...