Django admin,自定义错误消息?
我想知道如何在Django的后台显示错误信息。
我网站上有一个私人用户区域,用户可以用“积分”来创建请求。每个请求会从用户的账户中扣除1或2个积分(这取决于请求的类型),所以如果账户里没有积分,用户就不能发起任何请求……在私人用户区域,这一切都没问题,但用户也可以打电话给公司进行请求,这时候我需要后台能在用户积分为0的情况下显示一个自定义的错误信息。
任何帮助都很不错哦 :)
谢谢大家
3 个回答
2
Django 1.2 之前的版本可以参考这个链接:https://docs.djangoproject.com/en/1.4/ref/contrib/messages/
from django.contrib import messages
messages.add_message(request, messages.INFO, 'Hello world.')
5
我之前用过内置的消息系统来处理这种情况。这个功能会在你添加或修改对象时,在屏幕顶部显示黄色的提示条。你也可以很简单地使用它:
request.user.message_set.create(message='Message text here')
可以查看这份文档了解更多信息。
21
一种方法是在管理页面上重写ModelForm。这样你就可以写自定义的验证方法,并且可以很干净地返回你想要的错误信息。可以像这样在admin.py文件中实现:
from django.contrib import admin
from models import *
from django import forms
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
def clean_points(self):
points = self.cleaned_data['points']
if points.isdigit() and points < 1:
raise forms.ValidationError("You have no points!")
return points
class MyModelAdmin(admin.ModelAdmin):
form = MyForm
admin.site.register(MyModel, MyModelAdmin)
希望这对你有帮助!