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

Reply via email to