Django管理员,自定义错误消息?

Asi*_*nox 8 python django django-admin

我想知道如何在Django管理员中显示错误消息.

我的网站上有一个私人用户部分,用户可以使用"点"创建请求.一个请求从用户的帐户中取1或2个点(取决于两种类型的请求),因此如果帐户有0分,则用户无法在私人用户部分发出任何请求...这一切都很好,但是用户也可以打电话给公司并通过电话提出请求,在这种情况下,我需要管理员在用户点数为0的情况下显示自定义错误消息.

任何帮助都会很好:)

多谢你们

Gab*_*ley 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)
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!


Dan*_*man 5

我已经将内置的消息系统用于此类事情。这是在您添加/更改对象时在屏幕顶部打印黄色条的功能。您可以轻松地自己使用它:

request.user.message_set.create(message='Message text here')
Run Code Online (Sandbox Code Playgroud)

请参阅文档