Sunday, January 27, 2013

Re: Polls tutorial receive object not object representation


On Jan 27, 2013 5:58 PM, "Sayth Renshaw" <flebber.crue@gmail.com> wrote:
>
> Hi
>
> Just seeking a little clarification.
>
> In the Polls tutorial we get this section.
>
> >>> p = Poll.objects.get(pk=1)
>
> # Display any choices from the related object set -- none so far.
> >>> p.choice_set.all()
> []
>
> # Create three choices.
> >>> p.choice_set.create(choice_text='Not much', votes=0)
> <Choice: Not much>
> >>> p.choice_set.create(choice_text='The sky', votes=0)
> <Choice: The sky>
> >>> c = p.choice_set.create(choice_text='Just hacking again', votes=0)
>
> # Choice objects have API access to their related Poll objects.
> >>> c.poll
> <Poll: What's up?>
>
> # And vice versa: Poll objects get access to Choice objects.
> >>> p.choice_set.all()
> [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]
>
> Now the only thing is that when I call p.choice_set.all() I don't get the representation 'The sky' or 'Just Hacking again' . I receive choice object itself. Is this normal?
>
> In [14]: c = p.choice_set.create(choice_text='Just Hacking again', votes=0)
>
> In [15]: c.poll
> Out[15]: <Poll: What's up?>
>
> In [16]: p.choice_set.all()
> Out[16]: [<Choice: Choice object>, <Choice: Choice object>, <Choice: Choice object>, <Choice: Choice ob
> ject>]

You probably need a p.save() after creating the choices to actually place them in the database...otherwise I can see why the ORM is confused since choices_set causes a database hit and you are expecting objects that don't technically exist yet...

> Thanks
>
> Sayth
>
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment