File: ex_32_count_movies.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 (37 lines) | stat: -rw-r--r-- 939 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
"""mapper & fields/adding count 

This is an alternative way to add a movie count field that adds a column
When going this way you cannot filter on the "Movie Count" column
"""

from sqlkit import fields
from sqlkit.widgets.table import columns
from sqlkit.db.utils import DictLike

class CountMovies(fields.IntegerField):
    """
    A field that counts the movies
    """
    @fields.std_cleanup
    def clean_value(self, value):
        ## missing a field_name attribute on obj the objct itselt is passed
        return len(value.movies)

count_movies = CountMovies('n_movies')



t = SqlTable(model.Director,    dbproxy=db)

## add the fields to gui_fields
t.gui_fields['n_movies'] = count_movies
## create a column
col = columns.VarcharColumn(t, 'n_movies', 'Movie Count', field=count_movies)
## add it to the view
t.views['main'].add_column(col, position=2)
#t.field_list += ['n_movies']

t.totals.add_total('n_movies')

t.reload()