db.define_table('abonent', Field('a'))
db.define_table('person', db.abonet, Field('b')) # has a,b
db.define_table('company', db.abonet, Field('c')) # has a,c
db.define_table('provider', db.company, Field('d')) # has a,c,d


On Wednesday, 27 January 2016 17:05:57 UTC-6, RekGRpth wrote:
>
> I have 4 classes: Abonent, Person, Company and Provider.
> Person and Company are (sublasses of) Abonents, and Provider is 
> (subclasses of) Company.
> In django I can write
>
> class Abonent(models.Model): passclass Person(Abonent): passclass 
> Company(Abonent): passclass Provider(Company): pass
>
> how it will be in web2py?
> follow does not works:
>
> db.define_table('abonent')
> db.define_table('person', Field('abonent', db.abonent), 
> primarykey=['abonent'])
> db.define_table('company', Field('abonent', db.abonent), 
> primarykey=['abonent'])
> db.define_table('provider', Field('company', db.company), 
> primarykey=['company'])
>
> and this
>
> db.define_table('abonent')
> db.define_table('person', Field('abonent', db.abonent), 
> primarykey=['abonent'])
> db.define_table('company', Field('abonent', db.abonent), 
> primarykey=['abonent'])
> db.define_table('provider', Field('company', db.company.abonent), 
> primarykey=['company'])
>
> and this
>
> db.define_table('abonent')
> db.define_table('person', Field('abonent', type='reference abonent'), 
> primarykey=['abonent'])
> db.define_table('company', Field('abonent', type='reference abonent'), 
> primarykey=['abonent'])
> db.define_table('provider', Field('company', type='reference 
> company.abonent'), primarykey=['company'])
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to