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

时间:2017-08-09 21:58:37

标签: python django django-models django-templates django-admin

有一些方法可以在模型保存到数据库中后显示消息,或者保存时是否有任何错误。但是,当用户点击Django Admin中的保存按钮时,如何显示提醒?有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

如果您探索了django管理员,那么您可以看到django使用submit_line.html来渲染保存(保存和继续)按钮。

有多种方法可以做到,

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写信中

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

2)如果您想要管理员中的所有表单的警报,只需继承templates/admin/submit_line.html目录中的submit_line.html并简单地写,

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

答案 1 :(得分:2)

  

但是当用户在Django中单击“保存”按钮时,如何显示警报   管理员?有没有办法做到这一点?

它被称为validation。 Django最佳实践是在服务器上进行验证,这种方式描述为in the docs

您需要执行以下步骤:

  1. 在您的管理模型中设置form
  2. 在新表单中定义clean_name方法,其中name是您要检查的字段的名称。您还可以覆盖整个clean
  3. 如果出现错误,请提出ValidationError向用户发送消息。如果您在clean_name方法name字段中引发异常,则会在界面中突出显示。
  4. 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"]