我想知道如何在Django管理员中显示错误消息。
我的网站上有一个私人用户部分,用户可以使用“积分”创建请求。一个请求从用户的帐户中取1或2个点(取决于两种类型的请求),因此如果帐户有0分,则用户无法在私人用户部分发出任何请求...这一切都很好,但是用户也可以打电话给公司并通过电话提出请求,在这种情况下,我需要管理员在用户点数为0的情况下显示自定义错误消息。
任何帮助都会很好:)
谢谢你们
答案 0 :(得分:20)
这样做的一种方法是覆盖管理页面的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)
希望有所帮助!
答案 1 :(得分:4)
我已经将内置的Message系统用于此类事情。这是在添加/更改对象时在屏幕顶部打印黄色条的功能。您可以自己轻松使用它:
request.user.message_set.create(message='Message text here')
答案 2 :(得分:1)
Django版本&lt; 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.')