Python 在Django Admin中保存模型之前显示警报消息

Python 在Django Admin中保存模型之前显示警报消息,python,django,django-models,django-templates,django-admin,Python,Django,Django Models,Django Templates,Django Admin,在数据库中保存模型后或保存时出现任何错误时,可以通过多种方式显示消息。但是,当用户单击Django Admin中的保存按钮时,如何显示警报?有什么方法可以做到这一点吗?如果您研究了django管理员,那么您可以看到django用于呈现保存(保存并继续)按钮 有多种方法可以做到这一点 1)如果您想要应用程序提示,则在admin.py文件中包括带有管理媒体选项的自定义js文件 @admin.register(Model) class ModelAdmin(admin.ModelAdmin):

在数据库中保存模型后或保存时出现任何错误时,可以通过多种方式显示消息。但是,当用户单击Django Admin中的保存按钮时,如何显示警报?有什么方法可以做到这一点吗?

如果您研究了django管理员,那么您可以看到django用于呈现保存(保存并继续)按钮

有多种方法可以做到这一点

1)如果您想要应用程序提示,则在
admin.py
文件中包括带有管理媒体选项的自定义js文件

@admin.register(Model)
class ModelAdmin(admin.ModelAdmin):
   class Media:
        js = (
            'js/myscript.js',  # project's static folder ( /static/js/myscript.js )
        )
在您的
myscript.js
write中

window.addEventListener("load", function () {
(function ($) {
    $('form').submit(function () {
        var c = confirm("continue submitting ?");
        return c;
    });


})(django.jQuery);
})); 2)如果您想在admin中获得所有表单的警报,只需在
templates/admin/submit\u line.html
目录中继承,然后简单地编写

<script>
    $(document).ready(function(){
        $('form').submit(function() {
            var c = confirm("continue submitting ?");
            return c;
        });
    })
</script>

$(文档).ready(函数(){
$('form')。提交(函数(){
var c=确认(“继续提交?”);
返回c;
});
})
但是,当用户在Django中单击save按钮时,如何显示警报 管理有办法吗

它叫。Django的最佳实践是在服务器上进行验证,并描述了这种方式

您需要执行以下步骤:

  • 在您的管理模型中设置
    表单
  • 在新表单中定义
    clean_name
    方法,其中
    name
    是要检查的字段的名称。您还可以覆盖整个
  • 如果出现错误,则引发
    ValidationError
    向用户发送消息。如果在
    clean_name
    方法中引发异常,则界面中将突出显示
    name
    字段


  • 要做到这一点,唯一的方法是使用Javascript或更好的jQuery,让Django管理员为您服务。您可以将您的答案与一些来源链接起来吗?链接到媒体表单
    from django.core.exceptions import ValidationError
    from django import forms
    from django.contrib import admin
    
    
    class ArticleAdmin(admin.ModelAdmin):
        form = MyArticleAdminForm
    
    
    class MyArticleAdminForm(forms.ModelForm):
        def clean_name(self):
            if some_condition:
                raise ValidationError("Message which you want to show to the user")
            return self.cleaned_data["name"]