2017-12-05 22 views
2

장고 양식을 처음 사용하고 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에서

+0

보기를 표시해야합니다. 어떤 템플릿을 실제로 렌더링합니까? 단일베이스에서 상속받은 두 개의 템플릿을 가질 수 없으며 둘 다 표시 될 수 있습니다. –

+0

@DanielRoseman index.html을 렌더링하려고합니다. 한 페이지에 등록 양식과 로그인 양식을 모두 표시 할 수있는 방법이 있습니까? – AKJ

+0

당신은 전망을 게시 할 수 있습니까 ?? 당신이 템플릿을 – Exprator

답변

2

, 당신은 style="display: none;"을 설정하는

<form id="register-form" role="form" style="display: none;" enctype="multipart/form-data" method="POST"> 

, 그래서 분명히 양식이 표시되지 않습니다.

편집 : 같은 페이지에서 서로 다른 두 가지 형태를 보여줄 가능성에 대해서는 확신 할 수 없습니다.

+0

템플릿으로 보내고있는 곳에서 나는 그것을 또한 시험해 보았습니다. Daniel은 이전에 언급 한 첫 번째 게시물에서 하나의보기가 두 개의 다른 템플릿을 슬프게 렌더링 할 수는 없다고 언급했습니다. – AKJ

관련 문제