On Mon, Apr 6, 2009 at 12:11 PM, PJ Fitzpatrick <
[email protected]> wrote:

> Hi,
> That field replication is effectively what i have done in my barter
> application. However i think i am correct in saying that i should only do
> this if i require model1field to be used in a filter. If i need it for
> output i could go
>
> q.Model2().all
> firstrecord = q[0]
> print firstrecord.model1.model1field
>
> and it works.


That's correct, though if you're fetching and displaying a lot of entities,
you should bear in mind that the first access to each referenceproperty
requires a fetch from the datastore.


>
> I only got to thinking about the apparent contradiction here when i was
> preparing the presentation.
>
> tks,
> PJ
>
>
>
>
>
>
> On Mon, Apr 6, 2009 at 11:53 AM, Nick Johnson <[email protected]> wrote:
>
>> Because it's not possible. Doing so would require a join, which isn't
>> supported in the App Engine datastore. You need to denormalize your model,
>> and bring model1field in as a property of Model2.
>>
>> -Nick Johnson
>>
>>
>> On Mon, Apr 6, 2009 at 11:42 AM, PJ Fitzpatrick <
>> [email protected]> wrote:
>>
>>> Hi,
>>> Ahead of my talk on wednesday there is one thing i cannot seem to
>>> understand about queries in App Engine. Has anyone got an answer to the
>>> following.
>>>
>>>
>>> I am attempting to query as follows;
>>>
>>> class Model1.(db.Model)
>>> model1field = db.StringProperty()
>>>
>>> class Model2(db.Model)
>>> model1 = db.ReferenceProperty(Model1)
>>>
>>> q= Model2.all()
>>> q.filter("model1.model1field =", somestring)
>>>
>>> Why does this not work?
>>>
>>> tks,
>>> PJ
>>>
>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Python Ireland" 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.ie/group/pythonireland?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to