Не появляются поля form в python django

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2023

Никак не появляются поля input на моем сайте. Подключала через forms. Вот код

forms.py:

from .models import Anketa
from django.forms import ModelForm, TextInput


class AnketaForm(ModelForm):
    class Meta:
        model = Anketa
        fields = ['q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9']

        widgets = {
            "q1": TextInput(attrs={
                'id': 'window_question_1',

            }), 
            "q2": TextInput(attrs={
                'id': 'window_question_2',

            }),
            "q3": TextInput(attrs={
                'id': 'window_question_3',

            }),
            "q4": TextInput(attrs={
                'id': 'window_question_4',

            }),
            "q5": TextInput(attrs={
                'id': 'window_question_5',

            }),
            "q6": TextInput(attrs={
                'id': 'window_question_6',

            }),
            "q7": TextInput(attrs={
                'id': 'window_question_7',

            }),
            "q8": TextInput(attrs={
                'id': 'window_question_8',

            }),
            "q9": TextInput(attrs={
                'id': 'window_question_9',

            }),
        }

views.py:

# from django.shortcuts import render
from django.shortcuts import render
from .forms import AnketaForm


# Create your views here.
def index(request):
    return render(request, 'logistic/index.html')

def create(request):
    form = AnketaForm()

    data = {
        'form': form
    }

    return render(request, 'logistic/index.html', data)
# def about(request):
#     return render(request, 'boar/about.html')

# def news(request):
#     return render(request, 'boar/news.html')
    
# def stock(request):
#     return render(request, 'boar/stock.html')

index.html:

<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{% block title %}Главная{% endblock %}</title>
  <link rel = "stylesheet"  href="{% static 'logistic/css/style.css' %}">
  <link rel = "stylesheet"  href="{% static 'logistic/css/bootstrap.min.css' %}">


  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>

</head>

<body>
    <div class = "body">
        <img src = "{% static 'logistic/image/background.png' %}"/>
    </div>

  <a href="#">
    <div id="ikon-facebook"><img src = "{% static 'logistic/image/ikon-facebook.png' %}"/></div>
  </a>
  <a href="#">
    <div id="ikon-twitter"><img src = "{% static 'logistic/image/ikon-twitter.png' %}"/></div>
  </a>
  <a href="#">
    <div id="ikon-vk"><img src = "{% static 'logistic/image/ikon-vk.png' %}"/></div>
  </a>
  <a href="#">
    <div id="ikon-instagram"><img src = "{% static 'logistic/image/ikon-instagram.png' %}"/></div>
  </a>
  <div id="header">У тебя есть грузовая машина? Значит у нас есть для тебя работа</div>
  <div id="inscription_fill_in_the_form">Заполните анкету и мы свяжемся с вами</div>
  <a href="services.html">
    <div id="I_am_looking_for_an_employee">Я ищу работу</div>
  </a>
  <a href="#">
    <div id="I_am_looking_for_an_employee_">Я ищу сотрудника</div>
  </a>
  <div id="reference_number">Номер для справки</div>
  <div id="number">+8(000) 000-00-00</div>
  <div id="working_time">Рабочее время: пн-чт с 8:30 до 16:00 пт с 8:30 до 15:00 Мск</div>

  <div class="container content">
    <div class="row align-items-center content">

      <div class="col-12 text-center">
        <div id="background-button" data-toggle="modal" data-target="#exampleModalCenter">
          <img src = "{% static 'logistic/image/background-button.png' %}"/>
          <div id="button-text">Заполните резюме</div>

        </div>
      </div>
    </div>
  </div>

  <!-- Modal -->
  <div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
      <div class="modal-content rounded-0">
        <div class="modal-body p-4 px-5">

          <div class="main-content text-center">
            <div class="window-anketa">
              <div id="window"></div>
              <div id="picture_anketa"><img src="{% static 'logistic/image/backgrouns-anketa.png' %}" /></div>

              <form  method="POST">
                {% csrf_token %}
           
              <div id="answer_the_questions">Заполните форму</div>

              <div id="question_1">1. ФИО</div>
               {{ form.q1 }}

              <div id="question_2">2. Сколько вам лет?</div>
              {{ form.q2 }}

              <div id="question_3">3. У вас есть машина?</div>
              {{ form.q3 }}

              <div id="question_4">4. Опыт вождения?</div>
              {{ form.q4 }}

              <div id="question_5">5. Работали в логист. компании?</div>
              {{ form.q5 }}

              <div id="question_6">6.Опыт работы?</div>
              {{ form.q6 }}

              <div id="question_7">7. Готовы к вахте?</div>
              {{ form.q7 }}

              <div id="question_8">8. Контактный номер</div>
              {{ form.q8 }}

              <div id="question_9">9. Знание транспортной документации</div>
              {{ form.q9 }}
              <input type="submit"  class="button-anketa" value = "Отправить"></input>

            </form>


              <div id="text">*Если не можете или затрудняетесь ответить на вопрос, ставьте -</div>
            </div>

          </div>
        </div>
      </div>
    </div>
  </div>

</body>

</html>

models.py:

from django.db import models

# Create your models here.

class Anketa(models.Model):
    q1 = models.TextField('Первый вопрос', max_length=123)
    q2 = models.TextField('Второй вопрос', max_length=123)
    q3 = models.TextField('Третий вопрос', max_length=123)
    q4 = models.TextField('Четвертый вопрос', max_length=123)
    q5 = models.TextField('Пятый вопрос', max_length=123)
    q6 = models.TextField('Шестой вопрос', max_length=123)
    q7 = models.TextField('Седьмой вопрос', max_length=123)
    q8 = models.TextField('Восьмой вопрос', max_length=123)
    q9 = models.TextField('Девятый вопрос', max_length=123)


class Meta:
    verbose_name = 'Анкета'
    verbose_name_plural = "Анкеты"

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='home'),
    path('create', views.create, name='create')

    # path('about', views.about, name='about'),
    # path('news', views.news, name='news'),
    # path('stock', views.stock, name='stock')
]

Ответы

▲ 0Принят

Если хотите, чтобы форма отображалась не только во вью create, но и index, то в нее тоже нужно добавить создание формы и передать созданную форму в контекст