장고 양식을 처음 사용하고 HTML 양식을 디자인하는 동안 장고 양식 블록이 표시되지 않습니다. index.html을의장고 양식이 표시되지 않습니다
<body>
태그 :
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-login">
<div class="panel-heading">
<div class="row">
<div class="col-xs-6">
<a href="#" class="active" id="login-form-link">Login</a>
</div>
<div class="col-xs-6">
<a href="#" id="register-form-link">Register</a>
</div>
</div>
<hr>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-12">
{% block login_content %}
{% endblock %}
{% block register_content %}
{% endblock %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
login.html
{% block register_content %}
{% extends 'index.html' %}
{% block register_content %}
<form id="register-form" role="form" style="display: none;" enctype="multipart/form-data" method="POST">
{% csrf_token %}
{{ user_form.as_p }}
{{ profile_form.as_p }}
<input type="submit" name="" value="Register">
</form>
{% endblock %}
에로가는 {% block login_content %}
{% extends 'index.html' %}
{% block login_content %}
<form id="login-form" action="{% url 'authentication:user_login' %}" role="form" style="display: block;" method="POST">
{% csrf_token %}
<label for="username">Username:</label>
<input id="username" type="text" name="username" placeholder="Enter Username" tabindex="1" class="form-control">
<label for="password">Password:</label>
<input id="password" type="password" name="password" tabindex="=2" class="form-control" placeholder="Password">
<button type="submit" class="btn btn-success">Login</button>
</form>
{% endblock %}
register.html
로 전환 아래는 코드입니다 내 UI, {{ user_form.as_p }}
및 {{ profile_form.as_p }}
이 전혀 나타나지 않습니다.
난 내 UI의 콘솔을 검사 할 때, HTML 심지어 register.html에서 다음 행을 선택하지 않습니다 여기에
<form id="register-form" role="form" style="display: none;" enctype="multipart/form-data" method="POST">
는 UI 상호 작용을 담당하는 login.js
입니다 :
$(function() {
$('#login-form-link').click(function(e) {
$("#login-form").delay(100).fadeIn(100);
$("#register-form").fadeOut(100);
$('#register-form-link').removeClass('active');
$(this).addClass('active');
e.preventDefault();
});
$('#register-form-link').click(function(e) {
$("#register-form").delay(100).fadeIn(100);
$("#login-form").fadeOut(100);
$('#login-form-link').removeClass('active');
$(this).addClass('active');
e.preventDefault();
});
});
: 여기 내 views.py
입니다 :
def user_login(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
return HttpResponseRedirect(reverse('homepage')) # main page if login is successful
else:
return HttpResponse("ACCOUNT NOT ACTIVE")
else:
print('Someone tried to log in and failed')
print('Username: {}, password, {}'.format(username, password))
return HttpResponse('Invalid login details supplied')
else:
return render(request, 'authentication/login.html', {})
def register(request):
registered = False
if request.method == "POST":
user_form = UserForm(data=request.POST)
profile_form = UserProfileInfoForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
if 'profile_pic' in request.FILES:
profile.profile_pic = request.FILES['profile_pic']
profile.save()
registered = True
else:
print(user_form.errors, profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request, 'authentication/register.html',
{
'user_form': user_form,
'profile_form': profile_form,
'registered': registered
})
좋아요, 하나의 페이지에 두 템플릿을 모두 표시하는 것이 불가능한 것처럼 보입니다. 어쨌든 끝내야합니까? 당신의 register.html
에서
보기를 표시해야합니다. 어떤 템플릿을 실제로 렌더링합니까? 단일베이스에서 상속받은 두 개의 템플릿을 가질 수 없으며 둘 다 표시 될 수 있습니다. –
@DanielRoseman index.html을 렌더링하려고합니다. 한 페이지에 등록 양식과 로그인 양식을 모두 표시 할 수있는 방법이 있습니까? – AKJ
당신은 전망을 게시 할 수 있습니까 ?? 당신이 템플릿을 – Exprator