Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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
Django管理员更改错误消息(“请更正以下错误”)_Django_Django Messages - Fatal编程技术网

Django管理员更改错误消息(“请更正以下错误”)

Django管理员更改错误消息(“请更正以下错误”),django,django-messages,Django,Django Messages,是否可以更改django管理错误消息 我想添加我的自定义错误消息 请更正下面的错误。更改此消息 class mymodel(admin.ModelAdmin): # change message 仔细阅读,我们可以看到我们可以覆盖基本翻译,如下所示: 在settings.py中,添加/更新以下变量: LOCALE_PATHS = [ os.path.join(BASE_DIR,"locale"), ] 在项目的基本目录(找到manage.py)中,创建一个名为locale或

是否可以更改django管理错误消息

我想添加我的自定义错误消息

请更正下面的错误。更改此消息

class mymodel(admin.ModelAdmin):

    # change message
仔细阅读,我们可以看到我们可以覆盖基本翻译,如下所示:

在settings.py中,添加/更新以下变量:

LOCALE_PATHS = [
    os.path.join(BASE_DIR,"locale"),
]
在项目的基本目录(找到manage.py)中,创建一个名为locale或其他名称的文件夹,但如果重命名方式不同,请在步骤1中进行更改。 在区域设置文件夹中,为要覆盖的每种语言创建一个文件夹。在本例中,我们希望覆盖英语,因此需要创建一个名为en的文件夹 在en文件夹中,创建另一个名为LC_MESSAGES的文件夹 在LC_MESSAGES文件夹中,创建一个名为django.po的空文件 此时,locale的内容应该是这样的

├── locale
│   └── en
│       └── LC_MESSAGES
│           └── django.po
现在,我们需要在这个django.po文件中添加我们想要从django base translation重写的任何字符串。您可以在源代码中找到它们。例如,在您的特定情况下,告诉我们需要覆盖的字符串id处于启用状态:

我们使用该id提供不同的字符串,因此将以下内容添加到django.po文件中:

在这种情况下,我将原始消息替换为“立即修复错误”

使用重新编译消息

django-admin compilemessages
此命令应输出如下消息:

processing file django.po in /path/to/project/locale/en/LC_MESSAGES

django现在将考虑这个优先级较高的文件,并显示新的消息:


解决此问题的方法之一是使用翻译,但这需要编辑.PO文件的知识,并且您必须对代码进行大量更改

幸运的是,Django允许您在ModelAdmin中包含额外的.css文件和.js文件

棘手的想法是,您将在静态目录中创建一个javascript文件,并在该文件中替换您想要的任何文本

/static

    admin.js
admin.js 管理员 输出:

processing file django.po in /path/to/project/locale/en/LC_MESSAGES
/static

    admin.js
// When the page is fully loaded

document.addEventListener('DOMContentLoaded', function()
{
    // Replace whatever text you wish, line by line
    document.body.innerHTML = document.body.innerHTML.replace(new RegExp('\\bPlease correct the errors below\\b', 'g'), 'Some fields are empty');
    document.body.innerHTML = document.body.innerHTML.replace(new RegExp('\\bThis field is required\\b', 'g'), 'This field cannot be empty');
});
class mymodem(admin.ModelAdmin):
    class Media:
        js = ['admin.js']

    ....