On Thursday, 26 July 2012 03:45:41 UTC+1, Matthew Meyer wrote:
>
> HI daniel, thanks for the reply
>
> After your comments, I have used ModelForm to simplify my code. I have 
> also achieved redirecting the desired url by using the redirect() function. 
> My issues are still basically the same however:
>
> - I do not know how to tell Django to render a template at the redirected 
> url.
>
> I've tried passing redirect differnt views and params etc. to no avail.
>
> Here is my new views.py: http://dpaste.org/EtxdP/
>
> I am trying to have the event_page view handle the redirect and render the 
> template it returns. I know I am not relating the redirect and the view at 
> all, this is because I do not know how. If I try to relate them in some way 
> like this: return redirect('event_page', event)
>
> I get the error: Reverse for 'event_page' with arguments '(<Event: 
> pppzzz>,)' and keyword arguments '{}' not found.
>
> My urls.py looks like this now: http://dpaste.org/UzBcR/ 
>
> I am sort of hazy on the use of the third parameter in my second url 
> pattern. I know the first param is a regex, the second is the view that 
> handles the url, and from what I understand by reading the docs, the third 
> param is a type of distinguisher used if you are calling the same view for 
> different urls. 
>
> Any thoughts on where I would begin to for rendering a template at the 
> redirected url?
>
> Thanks,
> Matt
>
>
You haven't quite understood what a redirect is. A redirect doesn't render 
a template: a redirect is just a signal to the browser to go and fetch 
another, completely different, URL. Naturally, Django will then reply to 
that second request with the template rendered by the view pointed to by 
that second URL.

The third parameter to the url pattern is basically a name Django can use 
to refer to that URL, so that it can 'reverse' it and produce the actual 
URL for use in things like links, redirects and permalink definitions.

So, the main problem now is that you probably want the absolute URL to be 
the `event_page` view. You need to update the get_absolute_url method to 
point to that URL - as I said above, you can use the short name 'event_url' 
rather than the fully qualified view name. However, you also need to update 
the event_page view to accept the `name` parameter, and then to actually 
get the relevant Event object from that name - eg `event = 
Event.objects.get(name=name)` - and pass it to the event_page.html template.
--
DR.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/ZNOiBggB8oAJ.
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.com/group/django-users?hl=en.

Reply via email to