Accidentally posted the first reply and you already beat me to my
actual reply, wow. The "not feeling right" part meant to imply that
the disadvantages I could see for both made me wonder if there wasn't
another (and better) option available, but based on your answer it
seems that won't happen anytime soon.


On Nov 16, 1:51 pm, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
> Hi Malcolm,
> thanks for the fast reply.
>
> What is the downside of sticking this kind of information into a
> session, just that the session backend needs to carry this amount of
> information around and cookies have to be enabled for it to work? I
> otherwise would prefer it over (2) just for the cleaner URL.
>
> Thanks
> Stefan
>
> On Nov 16, 1:16 pm, Malcolm Tredinnick <[EMAIL PROTECTED]>
> wrote:
>
> > On Sun, 2008-11-16 at 12:58 +0100, Stefan Wallner wrote:
>
> > p,,,[
>
> > > My basic idea would be to use the same URL and view/template for  
> > > getting the directory listing and posting a file for uploading to it.  
> > > If a file is uploaded successfully the renamed file name and the users  
> > > that received the email should be listed in a notification part of the  
> > > template (i.e. <div class="notice">...) which confirms to the user  
> > > that everything is ok.
>
> > > Now I am stuck on how to best do this. POST/REDIRECT/GET does not seem  
> > > to fit here, since HttpResponseRedirect cannot pass any parameters to  
> > > a template and redirecting to the same URL does not make sense anyway.  
> > > What other pattern could/should I use?
>
> > I suspect you're actually asking the wrong question. The question isn't
> > "where should I redirect to?", but rather "how can I tell when loading
> > the file listing page, after a GET request, that some extra information
> > about the renamed file and notified people should be displayed?". It
> > doesn't matter what URL you actually retrieve after the file is
> > uploaded, that question still remains -- how to tell that you need to
> > display that information.
>
> > Once you've solved that problem, redirecting the the normal file listing
> > page is quite a natural place to go, since it shows the file listing
> > (plus this extra information sometimes), but that's really a side-issue.
>
> > You have at least a couple of choices:
>
> > (1) Use sessions and store the fact that a file was just uploaded (and
> > renamed) and the list of people notified in a key in the session. When
> > the user accesses the directory listing page using GET and if they have
> > that session key, display the extra information and then remove it from
> > the session (so it's displayed only once). Or possibly you want to keep
> > it in the session for a period of time or something. In any case, you
> > can use the session.
>
> > (2) The more HTTP/REST-like approach is to come up with a unique
> > identifier for the page that displays the newly uploaded information.
> > This identifier tells you (the webserver side of the code) that you need
> > to display the new filename and list of notified people. One way to do
> > this is to add a parameter to the GET request that is, say, the primary
> > key (or some other token) of the newly uploaded file. Then, when you are
> > processing that page, if the querystring contains that parameter, you
> > retrieve the new filename and the list of people who would have been
> > notified from the database.
>
> > The second way uses the fact that you can attach a querystring to a URL
> > and that's quite valid for an HTTP redirect. It's also probably not that
> > hard to implement, providing you can easily determine from the id of the
> > file who the recipients were. The slight drawback is that anybody who
> > knows that URL can view the same information. Maybe that's not a
> > problem. If it is, you can use access checking (e.g. the special display
> > information is only presented if the currently logged in user is the
> > person who uploaded the file with that id).
>
> > Thus the 'normal' view is, say, /foo/file_listing/ and the target after
> > an upload is, say, /foo/file_listing/?upload=123.
>
> > The first of these two choices is pretty fast to implement, but puts
> > information in the session, which you may or may not like doing. The
> > second is more "natural" in a way, but you have to do some work to
> > process the incoming optional querystring. It's still not particularly
> > hard, though.
>
> > Regards,
> > Malcolm
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to