December 2018
Beginner to intermediate
404 pages
10h 14m
English
Previously, we added a button to the Book Form section to check whether the ISBN is valid. Modern ISBNs have 13 digits, where the last one is a check digit computed from the first 12.
There is little point getting into the details of the algorithm used, so here is a Python function that implements this validation. It should be added inside the class Book(...) object, before the name field:
@api.multi def _check_isbn(self): self.ensure_one() digits = [int(x) for x in self.isbn if x.isdigit()] if len(digits) == 13: ponderations = [1, 3] * 6 terms = [a * b for a, b in zip(digits[:12], ponderations)] remain = sum(terms) % 10 check = 10 - remain if remain != 0 else 0 return digits[-1] == check
The button_check_isbn() method ...
Read now
Unlock full access