Hi all,
I'm new to tg2 and I'm trying sprox, I followed the tutorial at:
http://sprox.org/tutorials/table.html and
http://sprox.org/tutorials/form.html
and I created the model, templates and controller
I can insert new rows into the table movies
and the table grid shows the rows I inserted
but when I try to edit or delete a row
I get the 404 error like this:
edit: http://myserverdev:8080/movies/3/edit ERROR 404
delete: http://myserverdev:8080/movies/3 ERROR 404
here is my controller, what's wrong with it?
-------------------------------------------------------
from formencode.validators import DateValidator, String
from sprox.formbase import Field, CalendarDatePicker, AddRecordForm,
EditableForm
from sprox.tablebase import TableBase
from sprox.fillerbase import TableFiller, EditFormFiller
from tg.controllers import RestController, redirect
from tg import expose, tmpl_context, validate
from vir.model import DBSession
from vir.model.movies import Movie, Genre, Director
import transaction
class MovieTableFiller(TableFiller):
__model__ = Movie
def directors(self, obj):
directors = ', '.join(['<a
href="/directors/'+str(d.director_id)+'">'+d.name+'</a>'
for d in obj.directors])
return directors.join(('<div>', '</div>'))
class MovieTable(TableBase):
__model__ = Movie
__omit_fields__ = ['movie_id', 'genre_id']
__xml_fields__ = ['directors']
class NewMovieForm(AddRecordForm):
__model__ = Movie
release_date = Field(DateValidator)
title = Field(String(min=4))
__require_fields__ = ['release_date','description']
class MovieEditForm(EditableForm):
__model__ = Movie
__omit_fields__ = ['genre_id', 'movie_id']
movie_table = MovieTable(DBSession);
movie_filler = MovieTableFiller(DBSession)
new_movie_form = NewMovieForm(DBSession)
edit_movie_form = MovieEditForm(DBSession)
class SproxMovieController(RestController):
@expose('vir.templates.movies')
def get_all(self):
tmpl_context.widget = movie_table
value = movie_filler.get_value()
return dict(value=value)
@expose('vir.templates.movies_new')
def new(self, **kw):
tmpl_context.widget = new_movie_form
return dict(value=kw)
@expose('vir.templates.movies_add')
@validate(new_movie_form, error_handler=new)
def add_movie(self, **kw):
record = Movie(
title = kw.get('title') ,
description = kw.get('description') ,
genre_id = kw.get('genre') ,
release_date = kw.get('release_date')
)
DBSession.add(record)
DBSession.flush()
transaction.commit()
redirect('/movies')
@expose('vir.templates.movies_edit')
def edit(self, **kw):
tmpl_context.widget = edit_movie_form
return dict(value=kw)
--------------------------------------------------
thanks for any help
j
--
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en.