#django #django-forms #django-views
#django #django-forms #django-просмотры
Вопрос:
Я реализовал обе формы входа и регистрации в моем приложении Django. В настоящее время они отображаются в signup.html и login.html страницы с соответствующими представлениями, как показано ниже
def user_login(request):
if request.method == 'POST':
#do some authentication stuff login as stay on the page
login_form = LoginForm(request.POST)
if login_form.is_valid():
cleaned_form_data = login_form.cleaned_data
user = authenticate(username = cleaned_form_data['username'],
password = cleaned_form_data['password'])
if user is not None:
#proceed to login if active
if user.is_active:
login(request,user)
#return HttpResponse('Successfully Logged In')
messages.success(request,'Login successfull')
else:
return HttpResponse('Inactive User')
else:
return HttpResponse('Invalid Login')
else:
login_form = LoginForm()
template = 'accounts/login.html'
context = {'form':login_form,}
return render(request,template,context)
def register(request):
if request.method == 'POST':
form = RegisterForm(request.POST)
if form.is_valid():
new_user = form.save(commit = False)
password = form.cleaned_data['password']
new_user.set_password(password)
new_user.save()
return render(request,'accounts/reg_success.html',{'new_user':new_user,})
else:
form = RegisterForm()
template = 'accounts/register.html'
context = {'form':form,}
return render(request,template,context)
Как мне реализовать это, чтобы у меня были формы, отправляемые на каждую страницу, и я мог использовать модальности Javascript для входа и регистрации пользователей. Спасибо.
Ответ №1:
Я не эксперт, но я думаю, что есть 2 решения:
- Загрузите модальный контент с помощью AJAX, чтобы
user_login
- Используйте a
base.html
, где оно содержит модальное содержимое, тогда каждая страница может расширять базовую страницу с помощью {% extends ‘base.html ‘ %}