有一些方法可以在模型保存到数据库中后显示消息,或者保存时是否有任何错误。但是,当用户点击Django Admin中的保存按钮时,如何显示提醒?有没有办法做到这一点?
答案 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。
您需要执行以下步骤:
form
。clean_name
方法,其中name
是您要检查的字段的名称。您还可以覆盖整个clean。 ValidationError
向用户发送消息。如果您在clean_name
方法name
字段中引发异常,则会在界面中突出显示。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"]