我在覆盖此django表单字段的默认错误消息时遇到问题:
forms.ModelMultipleChoiceField(
...
error_messages={
'invalid_choice': _("Given user is already a member.")
}
)
堆栈跟踪:
File "/home/.../python2.7/site-packages/django/forms/models.py", line 1052, in clean
raise ValidationError(self.error_messages['invalid_choice'] % val)
File "/home/.../python2.7/site-packages/django/utils/functional.py", line 160, in __mod__
return six.text_type(self) % rhs
TypeError: not all arguments converted during string formatting
我发现它实际上是一个错误https://code.djangoproject.com/ticket/17840。
所以我的问题是:
是否可以忽略用self.error_messages['invalid_choice'] % val
注入的参数,而不必升级到django trunk版本(这已经修复)?
'invalid_choice': _("Given user %ign is already a member.")
的某些内容
python中的任何选项都适用于此?
答案 0 :(得分:0)
这个怎么样:
>>> class Str2(str):
def __mod__(self, arg):
return self
>>> Str2('hallo')
'hallo'
>>> s = Str2('hallo')
>>> s % 3
'hallo'
我不知道Django所以可能会有一些问题在于测试字符串的类,但也可能会挂钩。