我想知道如何在Django管理后台中显示错误消息。
我的网站上有一个私人用户区域,用户可以使用“积分”创建请求。每个请求从用户帐户中取走1或2个积分(具体根据请求类型而定)。因此,如果账户中没有积分,则用户无法发出任何请求...在私人用户部分这一切都很好,但是用户也可以通过电话向公司提出请求,在这种情况下,如果用户的积分为0,则需要管理员显示自定义错误消息。
任何帮助都将很好:)
感谢大家
我想知道如何在Django管理后台中显示错误消息。
我的网站上有一个私人用户区域,用户可以使用“积分”创建请求。每个请求从用户帐户中取走1或2个积分(具体根据请求类型而定)。因此,如果账户中没有积分,则用户无法发出任何请求...在私人用户部分这一切都很好,但是用户也可以通过电话向公司提出请求,在这种情况下,如果用户的积分为0,则需要管理员显示自定义错误消息。
任何帮助都将很好:)
感谢大家
一个方法是通过覆盖管理员页面的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)
希望能有所帮助!
我曾使用内置的消息系统来完成这样的事情。这是一种功能,当您添加/更改对象时,在屏幕顶部打印黄色条形图。您可以轻松地自己使用它:
request.user.message_set.create(message='Message text here')
如果您使用的是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.')