我的网页这样修改后还是进入了错误界面,我希望只是提醒用户错误原因,不要进入错误页面
时间: 2024-03-27 13:36:23 浏览: 164
如果你只是想在页面上方提醒用户错误原因,而不是进入错误页面,可以使用`django.contrib.messages`模块中的`messages.warning`函数。修改后的代码如下:
```
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.warning(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`异常,防止继续保存数据。
阅读全文