File: m2m.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 (42 lines) | stat: -rwxr-xr-x 1,280 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/python 

import sys
import gtk
from sqlkit import debug as  dbg
dbg.debug(True, gtk=True)
dbg.trace_class(ok='SqlTable|SqlWidget|SqlMask|Completion')
but = 'set_fkey_descr|(lookup|get)_value|[el]ne_cb|match_func' + \
       '|cell_default_cb|cell_bool_cb|lookup_value|is_fkey|instance2'
dbg.trace_function(exclude=but)

#from elixir_model import Director, Movie, Actor, Genre
#from db_model import Director, Movie, Actor, Genre
from db_model_autoload import Director, Movie, Actor, Genre

import sqlkit
from sqlkit.db import proxy
from sqlkit import completion
from sqlkit.db.utils import TableDescr

db = proxy.DbProxy(engine="sqlite:///movies.sqlite")
TableDescr('director', format="%(first_name)s %(last_name)s",
           metadata=db.metadata)

TableDescr('movie', format="%(title)s (%(year)s)",
           metadata=db.metadata)


lay = """
         title       year:5< 
         director_id - - -
         {T.a m2m=genres:5   m2m=actors:5:first_name,last_name } - - -
         """
t = sqlkit.SqlMask(Movie, dbproxy=db , layout=lay)
#t.add_constraint(genres__name__like='sto%')
Tbl = t.widgets['T.a']
Tbl.get_parent().child_set_property(Tbl, 'y-options', gtk.EXPAND|gtk.FILL)
                 
t.reload()
t.mapper.local_table.metadata.bind.echo = True

gtk.main()