I'd fancy something like Content.mapper.get_by(id=12345, lang='de')
Quoting Michael Bayer <[EMAIL PROTECTED]>: > youre still not showing me what the code to talk to the Content > object looks like. > > ill start: > > c = Content.mapper.get_by(story_id=4352) > > print "The title in english is:" c. .....?? > > print "the title in french is:" c. .....??? > > also are there other fields here ? body content ? summary? > > print "the body in english is:" c. ....??? > > I doubt I'd use a simple relation for this, particularly if you want > to load only one language at a time, as there will be some kind of > further query criterion inside there asking for language X, and a > relation does not handle per-request criterion (if thats what youre > really looking for, this would become an issue of....should there be > a jillion zillion switches and options to do things (the so-called > Humane interface) or should there be a small vocabulary of constructs > that are composed together by a programmer? ) > > On Mar 23, 2006, at 2:33 AM, Florian Boesch wrote: > > > Cleverly observed :D yes it is only half the question. > > I guess pulling all lang-titles eager and then doing the decision > > programmatically is the feasible thing to to-do. > > > > However =), > > > > traditionally you'd solve that problem by "select content.id as id, > > lang_str.title as title from content, lang_str, lang where > > lang_str.lang_id = > > lang.id and lang_str.content_id = content.id and lang.name := > > language and > > whatever else". That'd be a tad more efficient. > > > > Quoting Michael Bayer <[EMAIL PROTECTED]>: > > > >> this is only half of a question. what is the completed interface > >> youd like to see on the Content class, whereby i want the title in a > >> certain language? > >> > >> the solution, since it seems youre looking for something eager, would > >> involve just making a relation to load in all the titles represented > >> in the lang_str table for the "title" attribute, which would be named > >> something "hidden" like "_title", then implementing some interface on > >> Content that pulls from that already-loaded (or lazily-loaded) pool > >> of title fields. > >> > >> to make it more efficient to pull the title of a certain language > >> from this relation, you can subsitutite your own dictionary-like > >> object which has an "append" method for the "_title" attribute that > >> hashes based on the incoming language, as the mapper adds data to it. > >> > >> > >> On Mar 22, 2006, at 8:24 AM, Florian Boesch wrote: > >> > >>> A simple problem. Multi-language support. > >>> > >>> Say I have content which can have a title in different languages. > >>> So I have a > >>> > >>> content = Table('content', engine, > >>> Column('id', Integer, Sequence('content_seq'), primary_key=True)) > >>> > >>> so I also have a > >>> > >>> lang = Table('lang', engine, > >>> Column('id', Integer, Sequence('lang_seq'), primary_key=True), > >>> Column('name', String(255)) > >>> > >>> this contains things like VALUES('de') etc. > >>> > >>> lang_str = Table('lang_str', engine, > >>> Column('lang_id', Integer, ForeignKey('lang.id')), > >>> Column('content_id', Integer, ForeignKey('content.id')), > >>> Column('value', String(2048))) > >>> > >>> The problem is with the mapper and the relation to the title. > >>> > >>> class Content(object): pass > >>> contents = mapper(Content, content) > >>> contents.add_property('title', ...? > >>> > >>> etc. now the two questions. > >>> > >>> a) How do I make a relation that gives me the lang_str.value as > >>> it's value so > >>> I do not have to write somecontent.title.value > >>> > >>> b) How do I make the relation "customizable", i.e. I do not have to > >>> do many > >>> relations for each language I want support for (no > >>> mycontent.title_de.value, > >>> mycontent.title_en.value etc.? > >>> > >>> I do know how to customize for a fixed value via the secondaryjoin > >>> of relation, > >>> but I'm uncliear how I can parametrize this. (for that matter, I > >>> could of > >>> course write a member to my class who does this, but then I loose > >>> eager-loading > >>> for titles...) > >>> > >>> Cheers, > >>> Florian > >>> > >>> > >>> > >>> ------------------------------------------------------- > >>> This SF.Net email is sponsored by xPML, a groundbreaking scripting > >>> language > >>> that extends applications into web and mobile media. Attend the > >>> live webcast > >>> and join the prime developer group breaking into this new coding > >>> territory! > >>> http://sel.as-us.falkag.net/sel? > >>> cmd=lnk&kid=110944&bid=241720&dat=121642 > >>> _______________________________________________ > >>> Sqlalchemy-users mailing list > >>> Sqlalchemy-users@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users > >> > >> > >> > >> ------------------------------------------------------- > >> This SF.Net email is sponsored by xPML, a groundbreaking scripting > >> language > >> that extends applications into web and mobile media. Attend the > >> live webcast > >> and join the prime developer group breaking into this new coding > >> territory! > >> http://sel.as-us.falkag.net/sel? > >> cmd=lnk&kid=110944&bid=241720&dat=121642 > >> _______________________________________________ > >> Sqlalchemy-users mailing list > >> Sqlalchemy-users@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users > >> > >> > > > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by xPML, a groundbreaking scripting > > language > > that extends applications into web and mobile media. Attend the > > live webcast > > and join the prime developer group breaking into this new coding > > territory! > > http://sel.as-us.falkag.net/sel? > > cmd=lnk&kid=110944&bid=241720&dat=121642 > > _______________________________________________ > > Sqlalchemy-users mailing list > > Sqlalchemy-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Sqlalchemy-users mailing list > Sqlalchemy-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users > > ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users