Thread: [SQLObject] Method to validate data
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <ji...@ql...> - 2010-03-12 21:38:43
|
Hi I have a method inside my class definition that I want to use to validate a field before allowing the data to be saved. Here is the def: class Requisition(SQLObject): class sqlmeta: style = Style(longID=True) idName = 'requisitionId' plant = ForeignKey('Plant', dbName='plantId') requisitionPeriod = ForeignKey('RequisitionPeriod', dbName='requisitionPeriodId') requisitionStatus = ForeignKey('RequisitionStatus') itemNumber = UnicodeCol(length=15) itemName = UnicodeCol(length=50) requestedBy = ForeignKey('User', dbName='requestedById') dateRequested = DateCol() quantity = IntCol() uom = UnicodeCol(length=20) quantityReceived = DecimalCol(size=12, precision=4) dateReceived = DateCol() dateCanHold = DateCol() dateNeeded = DateCol() notes = UnicodeCol() dateOrdered = DateCol() poNumber = UnicodeCol(length=50) orderNumber = IntCol() ingCost = DecimalCol(size=12, precision=2) frtCost = DecimalCol(size=12, precision=2) supplier = ForeignKey('Vendor', dbName='supplierId', cascade=False) carrier = ForeignKey('Vendor', dbName='carrierId', cascade=False) driver = ForeignKey('Driver', dbName='driverId', cascade=False) bolNumber = UnicodeCol(length=50) ingInvoice = UnicodeCol(length=20) prepaid = BoolCol(default=False) requisitionGroup = IntCol(default=0) createdOn = DateTimeCol(default=datetime.now) def _set_dateRequested(self, value): dateRequested = value log.debug('here') requisitionPeriodId = self._SO_get_requisitionPeriod() log.debug(requisitionPeriodId) When I try to add a Requistion, in my debug output I get to the first debug statement, but never to the second. I'm assuming it is because I'm specifying something wrong on - requisitionPeriodId = self._SO_get_requisitionPeriod() - but I don't know what I'm doing wrong. How do I specify this with a ForeignKey field? -Jim |
From: Oleg B. <ph...@ph...> - 2010-03-12 21:56:53
|
Hi. It's too hard to read a message with a lot of boring and unnecessary details and too much of empty lines. Next time you want to ask a question please simplify it a bit. On Fri, Mar 12, 2010 at 02:37:27PM -0600, ji...@ql... wrote: > class Requisition(SQLObject): > requisitionPeriod = ForeignKey('RequisitionPeriod', > dbName='requisitionPeriodId') > > def _set_dateRequested(self, value): > dateRequested = value > > log.debug('here') > > requisitionPeriodId = self._SO_get_requisitionPeriod() You do want self.requisitionPeriod.id, don't you? requisitionPeriodId = self.requisitionPeriod.id > log.debug(requisitionPeriodId) > > When I try to add a Requistion, in my debug output I get to the first debug statement, but never to the second. I'm assuming it is because I'm specifying something wrong on - requisitionPeriodId = self._SO_get_requisitionPeriod() - but I don't know what I'm doing wrong. How do I specify this with a ForeignKey field? Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Oleg B. <ph...@ph...> - 2010-03-15 10:29:36
|
Hi. Please answer to the list, not to my personal address. On Fri, Mar 12, 2010 at 04:09:23PM -0600, ji...@ql... wrote: > My apologies for providing the superfluous info. I was just trying to be thorough. However, I've inserted the following code and again, am not getting to the second debug statement. > > def _set_dateRequested(self, value): > dateRequested = value.strftime('%Y/%m/%d') > log.debug('here') > requisitionPeriod = self.requisitionPeriod.id > log.debug(requisitionPeriod) With Python, a code is either executed, or raise an exception, or crash an interpreter. Did the code raise an exception or crash the interpreter? Perhaps, no. Hence the code was executed. How come requisitionPeriod was not in the log? I am not sure. It could be because it is None, though it's stranage for a ForeignKey. Try logging it with additional text: log.debug('requisitionPeriod=%s', requisitionPeriod) Even better log it with its type: log.debug('requisitionPeriod: %r %s', type(requisitionPeriod), requisitionPeriod) Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Oleg B. <ph...@ph...> - 2010-03-16 14:44:59
|
ji...@ql..., please answer to the mailing list, not to me personally. Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |