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.

