import model
from crud import crudbase, fields
class DistributionCenterView(crudbase):
modelClass=model.DistributionCenter
displayName='Distribution Center'
fields=fields('name', 'note',
'address.street1', 'address.street2',
'address.city', 'address.state', 'address.zip',
'stores', 'trucks')
key='name'
this is for the following SQLObject model:
class DistributionCenter(SQLObject):
def destroySelf(self):
self.address.destroySelf()
SQLObject.destroySelf(self)
name=StringCol(default=uniqueValue('DistributionCenter', 'name', 'ctr'),
alternateID=True)
note=StringCol(default='')
address=ForeignKey('Address', default=newAddressID, cascade=False)
stores=MultipleJoin('Store')
trucks=MultipleJoin('Truck')
The resulting list view looks a little like this (simplified a bit for blogger):
Name | Note | Street1 | Street2 | City | State | Zip | Stores | Trucks | |
---|---|---|---|---|---|---|---|---|---|
Edit Delete | Dist Ctr A | A note on dca | 123 Main Street | Marietta | GA | 30062 | Home Dep 3 | SXG 456,ABC 123 | |
Edit Delete | Center 2 | Another Center | 456 Beechwood Ave. | Marietta | GA | 30067 | Store Num 1,store_2 | 333 HFF |
As you can see, foreign keys and multiple joins are handled, as well as columns from foreign tables (via the "address.street1..." stuff). I'm still working on cleaning things up, but if this code would be a useful starting point for you, drop me a comment and I'll email you a copy. Alternatively, if there are several people interested, we'll set up a project on SourceForge.
No comments:
Post a Comment