On 3 January 2011 23:00, Tim Sawyer <list.dja...@calidris.co.uk> wrote:

> On 03/01/11 03:53, Kyle wrote:
>
>> When I try to access my Object, I get an error "invalid literal for
>> int() with base 10". I know it has something to do with ForeignKeys,
>> but cannot find how to fix it.
>>
>
> It helps if you post the full stack of the error - we can tell which line
> of code it came from then.  However,
>
>  def artist(request, myartist):
>>        myArgs = Song.objects.all().filter(artist=myartist)
>>        return render_to_response('music/index.html', {'artist': myArgs})
>>
>
> I think this is your problem.  What are you passing in on the url for
> myartist?  Is it a slug?
>
> Song.objects.all().filter(artist=myartist)
>
> is expecting myartist to be an Artist instance. Try
>
> Song.objects.all().filter(artist__slug=myartist)
>
> (that's two underscores between artist and slug.)
>
> This says "Select me all the songs where the related Artist's slug is
> whatever was passed in on the url"
>
> And if myartist is an id (and therefore likely an integer or a string of an
integer, as it comes from a URL), then you want:

 Song.objects.all().filter(artist__id=myartist)

(the .all() is unneccessary, by the way).

Greg.

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

Reply via email to