将电子邮件传递给 Django 中的路径
Passing email to path in django
我有这样的代码:-
path(something/regex_email/, views.func, name="something"),
如果用户在 url 中输入任何电子邮件,例如 /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)
那么你可以尝试添加路径为:
path('something/<email>/', views.yourView, name='something')
那么您的视图可以将该电子邮件作为参数:
def yourView(request, email):
然后您可以return按照您认为合适的方式处理。关于您要完成的工作的信息很少,很难给出更好的答案。希望这有帮助。
所以,我得到了答案,我希望在路径的末尾,如果用户提供了一个不在我的数据库中的有效电子邮件 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'),
]
('something//', views.yourView, 名字='something')
我有这样的代码:-
path(something/regex_email/, views.func, name="something"),
如果用户在 url 中输入任何电子邮件,例如 /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)
那么你可以尝试添加路径为:
path('something/<email>/', views.yourView, name='something')
那么您的视图可以将该电子邮件作为参数:
def yourView(request, email):
然后您可以return按照您认为合适的方式处理。关于您要完成的工作的信息很少,很难给出更好的答案。希望这有帮助。
所以,我得到了答案,我希望在路径的末尾,如果用户提供了一个不在我的数据库中的有效电子邮件 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'),
]
('something//', views.yourView, 名字='something')