如何检查Django(django-admin)中的值转换? [英] How to check value transition in Django (django-admin)?

查看:188
本文介绍了如何检查Django(django-admin)中的值转换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个状态字段,其中有3个值:pending,activated
并被拒绝。如果我正在更改状态的值,我想要
有一个激活的检查不能更改为待处理。 I
不想为此写入存储过程。保存前可以在Django中先前获得
以前的值?

I have a status field which has 3 values: pending, activated and rejected. If I am changing the value of status I want to have a check that activated cannot be changed to pending. I do not want to write stored-procs for this. Can I have the previous value in Django before saving?

表示新旧值。

推荐答案

def clean_status(self):
    status = self.cleaned_data.get('status')
    if status == 'pending':
        if self.instance and self.instance.status == 'activated':
            raise forms.ValidationError('You cannot change activated to pending')

    return status

此方法将添加到表单子类。它的名字是 clean_FIELD_NAME

This method is to be added in a Form subclass. Its name is clean_FIELD_NAME.

clean_data 包含以前的值。新值存储在 self.instance 中。

cleaned_data contains previous values. New value is stored in self.instance.

或者, validate() code>方法可以添加到 forms.Field 子类中。 请参阅Django文档。

这篇关于如何检查Django(django-admin)中的值转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆