我知道在表单或模型中自定义错误消息有不同的方法
我在我的型号中自定义了唯一的消息
...
ran_bra = models.CharField("Arm", max_length=1, null=True, blank=True)
pat = models.CharField("Patient number", max_length=8, unique=True, null=True, blank=True,
validators = [
RegexValidator(
regex='^[A-Z]{3}-[0-9]{4}$',
message= 'L'identifiant doit être au format XXX-0000',
code='invalid_participant_id'
),
],
error_messages={'unique': u'Ce patient a déjà été randomisé dans le bras X. Veuillez vérifier votre saisie.'},
)
...
但我希望将消息中的X替换为数据库中的数据例如,如果用户试图输入数据库中已经存在的SMI-0001,我将用SMI-0001 的ran_bra值替换X
有可能吗?
您可以这样尝试。
error_messages={'unique': u'Ce patient a déjà été randomisé dans le bras{}. Veuillez vérifier votre saisie.'.format (your_value)},)
You can format strings directly in python. For example:
txt3 = "My name is {}, I'm {}".format("John", 36)
print(txt3) # My name is John, I'm 36
在你的情况下,这将是
error_messages={
'unique': u'Ce patient a déjà été randomisé dans le bras {}. Veuillez vérifier votre saisie.'.format(ran_bra)
},
编辑
要做到这一点,需要使用一个函数。
def get_string(name):
return 'Ce patient a déjà été randomisé dans le bras ' + name + '. Veuillez vérifier votre saisie.'
# ...
error_messages = {
# ...
'unique': get_string(ran_bra),
}