Friday, October 10, 2014

Re: best aproach to pass an email from the url to a view?

On Friday, 10 October 2014 01:00:29 UTC+1, dk wrote:
I put the Email that I got from a form into the url (I am using the url as a variable to store the email)

and look like this

url:
url(r'^vote/thank/(?<your_email>   #here should be RE catching the email    )$', views.thank),
view:
def thank(request, your_email=None):
    c
= {"thanks_body": "thanks_body view"}
    c
["his_email"] = your_email
   
return render(request, "thanks.html", c)

I am having issues to try to come up with a RE to grab the email
using it on my url
such
url(r'^vote/thank/(?<your_email>^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$ ', views.thank),
 and I still don't catch it, I think because I am just copy pasting but in the url string should be arrenge diferntly?
I was reading about a  get function that can make a quary on the url like a dictionary?  any example on how to use it?

thanks,  (I order a book for RE  =)  just to be able to udertand a little bit more   )



I think you're trying too hard here. Regexes for email are usually concerned with *validation*, ie checking in a form that the thing typed into the "email" field looks like an actual email. But that is not, or should not be, a consideration in a URL: at this point the email has already been validated, and all you want to do is to send it to the next page. So you probably just want to grab everything after the `thank` part:

'^vote/thank/(?<your_email>.*)$'

To be honest though, this is something I wouldn't even try to catch in the URL at all. Instead, pass it as a querystring parameter, so the URL would be in the format "/vote/thank/?email=foo@bar.com" and you get it in the view as `request.GET['email']`.
--
DR>

--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9ad145a3-08f2-4144-bbc6-75fb949b1184%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment