2017-12-05 87 views
2

私はdjangoフォームが新しく、HTMLフォームを設計しようとしているときに、djangoフォームブロックが表示されていないことがわかりました。以下のコードです:index.htmlをのDjangoフォームが表示されない

<body>タグ:オン{% 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になり

<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私の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次のとおりです。

EDIT
$(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 
        }) 

さて、1つのページに両方のテンプレートを表示することは不可能なようです。それをやり遂げるためにとにかくありますか?フォームが表示されませんので、明らかに

+0

ビューを表示する必要があります。どのテンプレートを実際にレンダリングしていますか?単一の基盤から継承する2つのテンプレートを持つことはできず、両方を表示することもできません。 –

+0

@DanielRoseman私はindex.htmlをレンダリングしようとしています。登録フォームとログインフォームを1つのページに表示する方法はありますか? – AKJ

+0

あなたはビューを投稿できますか?どこからフォームをテンプレート – Exprator

答えて

2

あなたregister.html

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

であなたは、style="display: none;"を設定しています。

編集:同じページに2つの異なるフォームを表示する可能性についてはわかりません。

+0

に送っているのですか、私もそれを試しました、それは現れません。私の最初の投稿のDanielは、1つのビューで2つの異なるテンプレートを悲しいものにすることはできません。 – AKJ

関連する問題