这样修改后会直接跳转到错误界面,但是我希望能够在输入框上方给出错误提示
时间: 2024-03-27 11:36:22 浏览: 52
如果想要在输入框上方给出错误提示,可以使用`django.contrib.messages`模块中的`error`函数。修改后的代码如下:
```
from django.contrib import messages
class StaffInfoAdmin(admin.ModelAdmin):
inlines = [EmergencyInline, BackgroundInline, WorkInline, FamilyInline]
search_fields = ['NAME', 'RES_ID']
list_display = ['NAME', 'BIRTH', 'RES_ID']
list_filter = ['POST']
def clean_fields(self, request, obj):
mobile_pattern = re.compile(r'^1[3456789]\d{9}$')
if not re.match(mobile_pattern, obj.TEL):
messages.error(request, "请输入11位电话号码,且不包含'-'")
raise ValidationError("请输入11位电话号码,且不包含'-'")
super().clean_fields(request, obj)
def save_model(self, request, obj, form, change):
self.clean_fields(request, obj)
super().save_model(request, obj, form, change)
```
在`clean_fields`函数中,如果输入的电话号码不合法,则会在页面上方显示错误提示。同时也会抛出`ValidationError`异常,防止继续保存数据。
阅读全文