На данный момент этот кодировочный токен csrf не работает в этом шаблоне. Куда мне нужно добавить токен csrf в этом шаблоне - PullRequest
0 голосов
/ 01 апреля 2020

Я пробовал много способов сохранить данные в базе данных, используя код представлений, используя первый опубликованный шаблон, который работает нормально. Второй шаблон не работает. Так, где я должен добавить токен csrf для этого шаблона. я добавил токен csrf, но он показывает шаблон правильно, но данные не сохраняются в базе данных.

Ниже шаблон работает:

<html>
<head>
<title>saving data</title>
</head>
<body>
<form method="post" action="">
{% csrf_input %}
{{form.as_p}}
<input type="submit" class="btn btn-primary" name="" value="Submit">
</form>
 </body>
</html>

Ниже шаблон не работает там, где мне нужно добавить csrf токен:

 <!DOCTYPE html>
 {% load static %}
 <html lang="en">

 <head>
 <meta charset="UTF-8">
 <meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
 <title>Otika - Admin Dashboard Template</title>
 <!-- General CSS Files -->
 <link rel="stylesheet" href="{%static 'css\app.min.css'%}">
 <link rel="stylesheet" href="{%static 'bundles\jquery-selectric\selectric.css'%}">
 <!-- Template CSS -->
 <link rel="stylesheet" href="{%static 'css\style.css'%}">
 <link rel="stylesheet" href="{%static 'css\components.css'%}">
 <!-- Custom style CSS -->
 <link rel="stylesheet" href="{%static 'css\custom.css'%}">
 <link rel='shortcut icon' type='image/x-icon' href="{%static 'img\favicon.ico'%}">
  </head>

  <body>
 <div class="loader"></div>
 <div id="app">
<section class="section">
  <div class="container mt-5">
    <div class="row">
      <div class="col-12 col-sm-10 offset-sm-1 col-md-8 offset-md-2 col-lg-8 offset-lg-2 col-xl-8 offset-xl-2">
        <div class="card card-primary">
          <div class="card-header">
            <h4>Register</h4>
          </div>
          <div class="card-body">
            <form method="POST">
              {% csrf_token %}
              <div class="row">
                <div class="form-group col-6">
                  <label for="frist_name">First Name</label>
                  <input id="frist_name" type="text" class="form-control" name="frist_name" autofocus="">
                </div>
                <div class="form-group col-6">
                  <label for="last_name">Last Name</label>
                  <input id="last_name" type="text" class="form-control" name="last_name">
                </div>
              </div>
              <div class="form-group">
                <label for="email">Email</label>
                <input id="email" type="email" class="form-control" name="email">
                <div class="invalid-feedback">
                </div>
              </div>
              <div class="row">
                <div class="form-group col-6">
                  <label for="password" class="d-block">Password</label>
                  <input id="password" type="password" class="form-control pwstrength" data-indicator="pwindicator" name="password">
                  <div id="pwindicator" class="pwindicator">
                    <div class="bar"></div>
                    <div class="label"></div>
                  </div>
                </div>
                <div class="form-group col-6">
                  <label for="password2" class="d-block">Password Confirmation</label>
                  <input id="password2" type="password" class="form-control" name="password-confirm">
                </div>
              </div>
              <div class="form-group">
                <div class="custom-control custom-checkbox">
                  <input type="checkbox" name="agree" class="custom-control-input" id="agree">
                  <label class="custom-control-label" for="agree">I agree with the terms and conditions</label>
                </div>
              </div>
              <div class="form-group">
                <button type="submit" class="btn btn-primary btn-lg btn-block">
                  Register
                </button>
              </div>
            </form>
          </div>
          <div class="mb-4 text-muted text-center">
            Already Registered? <a href="auth-login.html">Login</a>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>
</div>

<!-- General JS Scripts -->
 <script src="{%static 'js\app.min.js'%}"></script>
<!-- JS Libraies -->
<script src="{%static 'bundles\jquery-pwstrength\jquery.pwstrength.min.js'%}"></script>
<script src="{%static 'bundles\jquery-selectric\jquery.selectric.min.js'%}"> 
</script>
<!-- Page Specific JS File -->
<script src="{%static 'js\page\auth-register.js'%}"></script>
<!-- Template JS File -->
<script src="{%static 'js\scripts.js'%}"></script>
<!-- Custom JS File -->
 <script src="{%static 'js\custom.js'%}"></script>
</body>

</html>

1 Ответ

0 голосов
/ 01 апреля 2020

В HTML вам необходимо использовать форму. См. здесь о том, как визуализировать Django формы.

Поскольку это модельная форма, вы можете сделать это:

if request.method == 'POST':
    form = SignUpForm(request.POST)
    if form.is_valid():
        form.save()
        return HttpResponse('data has been saved :')
...