File: ex_61_hooks_validate.py

package info (click to toggle)
sqlkit 0.9.5-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 8,184 kB
  • sloc: python: 17,477; sql: 166; makefile: 95; xml: 23; sh: 11
file content (27 lines) | stat: -rw-r--r-- 702 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""hooks/on_validation

on_validation is triggered any time you save. Here you can implement a read
only table...

try changing something and then saving.

"""
from sqlkit.exc import ValidationError
from sqlkit.db.utils import get_differences

class Validation(object):
    def on_validation(self, mask):

        changed = False
        for field_name, old, new in get_differences(mask.current):
            print field_name, old, new
            changed = True

        if changed:
            raise ValidationError("I don't want you to change anything!!!")

t = SqlMask(model.Movie, dbproxy=db, hooks=Validation())
t.gui_fields.description.blank = True  #don't try to change '' in None

t.reload()