Now what, I thought about the problem, and I think there's a nicer concept then
outfactoring just the title.

>From a rational point of view the title is the first snipple of data a content
can be associated with. A content has always a unique name, but it can have
many data associations that primarly differ in language (or some other aspect).
And then anybody who wants to do specialized content derives from content data,
as this is the logical thing to do.

Quoting Florian Boesch <[EMAIL PROTECTED]>:

> 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
>
>




-------------------------------------------------------
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

Reply via email to