Передача электронной почты по пути в Джанго - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть такой код: -

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)

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Итак, я получил свой ответ. Я хотел, чтобы в конце пути пользователь указывал действительный идентификатор электронной почты, которого нет в моей базе данных, поэтому я хочу перенаправить этого пользователя на ту страницу, на которую я хочу, поэтому яЯ получил это решение с помощью функции 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 = «нечто»)

0 голосов
/ 10 февраля 2019

Ну, вы можете попробовать добавить путь:

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

Тогда ваше представление может принять это электронное письмо в качестве параметра:

def yourView(request, email):

И затем вы можете обработать этот возврат каквы считаете нужным.Трудно дать лучший ответ с небольшим количеством информации о том, чего вы пытаетесь достичь.Надеюсь, это поможет.

...