将电子邮件传递到django中的路径

问题描述 投票:0回答:2

我有这样的代码: -

path(something/regex_email/, views.func, name="something"),

如果用户在网址中输入任何类似/anyemail/的电子邮件,则应将用户重定向到某个页面...

但它没有将我重定向到那个页面,我已经看到过一些关于这些问题的建议,但那些都没有用。

views.py

def users(request):
if request.method == 'POST':
    user_email = request.POST.get('').rsplit('/',1)
    print(user_email)
    email = UserApprovedModel.objects.get(email__exact=user_email)
    form = UserRegisterForm(request.POST)
    form.email = email
    if form.is_valid():
        obj = form.save()
        obj.org = request.user.profile.org
        obj.save()
        return redirect('login')
        # username = form.cleaned_data.get('username')
        # messages.success(request, f'Your account has been created! You are now able to log in')
        # return redirect('login')
else:
    form = UserRegisterForm()
user_org = request.user.profile.org
profiles = Profile.objects.filter(org = user_org)
context = {'form': form, 'user_org': user_org.name, 'profiles': profiles}
return render(request, 'users/register.html', context)
django django-templates django-views django-urls django-registration
2个回答
0
投票

那你可以尝试添加路径:

path('something/<email>/', views.yourView, name='something')

然后您的视图可以将该电子邮件作为参数:

def yourView(request, email):

然后你可以按照你认为合适的方式处理。很难用一些关于你想要完成的事情的信息给出更好的答案。希望这可以帮助。


0
投票

所以,我得到了我的回答,我希望在路径的最后,如果用户提供的有效电子邮件ID不在我的数据库中,所以我想在该页面上重定向我想要的那个用户,所以我得到了解决方案使用re_path()函数,它允许你给出正则表达式路径,所以这是我如何使用它:

from django.urls import path, include, re_path
from users.views import usersAcc

urlpatterns = [
re_path(r'^users/\w+|[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]+$/', usersAcc, name='org-users'),
]

('某事//',views.yourView,name ='something')

© www.soinside.com 2019 - 2024. All rights reserved.