Создание формы повторного использования в Django SOLVED
Правильно, пытаюсь создать многоразовую форму на моем Django-сайте.
По какой-то причине он просто не отображает поля формы. Он отображает кнопку submit
, но, несмотря на правильную настройку полей и передачу их в мой шаблон, шаблон отказывается отображать поля формы.
Пытаюсь установить форму на privacy-statement
странице, а также хотел бы использовать ее на cookie-statement
странице.
Заявление о конфиденциальности уже существует, форма новая, и я хочу, чтобы она была многоразовой.
Вот моя установка, включая пути к каждому файлу:
Обновление: проблема решена. Смотрите измененный вариант работы ниже:
#PROJECT-NAME/legal/forms.py
from django import forms
class TicketForm(forms.Form):
subject = forms.CharField(max_length=255)
description = forms.CharField(widget=forms.Textarea)
email = forms.EmailField()
#PROJECT-NAME/legal/views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse
from . forms import TicketForm
from django.core.mail import send_mail, BadHeaderError
from django.template import loader
from blauwestadtech import utils
from django.conf import settings
import requests
def legal__privacy_statement(request):
form = TicketForm()
context = {
'form' : form
}
return render (request, 'privacy-statement.html', context)
#PROJECT-NAME/legal/urls
from django.contrib import admin
from django.urls import path, include
from . import views
from .views import create_ticket
urlpatterns = [
path(
'privacy/', include(
[
path('cookie-statement', views.legal__cookie_statement, name="cookie-statement"),
path('privacy-statement', views.legal__privacy_statement, name="privacy-statement"),
]
),
),
]
#PROJECT-NAME/legal/templates/privacy/_form.html
<form method="post">
{% csrf_token %}
<div class="form-field">
{{ form.name }}
{{ form.name.errors }}
</div>
<div class="form-field">
{{ form.email }}
{{ form.email.errors }}
</div>
<div class="form-field">
{{ form.subject }}
{{ form.subject.errors }}
</div>
<div class="form-field">
{{ form.description }}
{{ form.description.errors }}
</div>
<div class="form-field">
{% include 'text-modules/privacy-notice.html' %}
</div>
<button type="submit" class="btn btn--pink">Submit</button>
</form>
<form method="post">
{% csrf_token %}
<div class="form-field">
{{ form.name }}
{{ form.name.errors }}
</div>
<div class="form-field">
{{ form.email }}
{{ form.email.errors }}
</div>
<div class="form-field">
{{ form.subject }}
{{ form.subject.errors }}
</div>
<div class="form-field">
{{ form.description }}
{{ form.description.errors }}
</div>
<div class="form-field">
{% include 'text-modules/privacy-notice.html' %}
</div>
<button type="submit" class="btn btn--pink">Submit</button>
</form>
#PROJECT-NAME/legal/templates/privacy/privacystatement.html
{% block content %}
<article class="page">
<div class="page-content">
{% include '_form.html' with form=form %}
</div>
</article>
{% endblock %}
При осмотре веб-страницы я получаю следующее, как видите, никаких полей формы...
<form method="post" action="/legal/privacy/create-ticket/">
<input type="hidden" name="csrfmiddlewaretoken" value="xxxxxxx">
<button type="submit">Submit</button>
</form>
Почему мой шаблон отказывается отображать поля формы?
- Десятки раз перепроверил все опечатки - я ожидал увидеть поля формы,
- Подтвердил правильность синтаксиса импорта - я ожидал увидеть поля формы,
- Попробовал напрямую добавить форму, вложенную в
_form.html
, в шаблонprivacy-statement
, не используя функциюinclude
, - ожидал увидеть поля формы - Просмотрел 100 000 грубо неточных видеороликов на YouTube - я ожидал увидеть поля формы
- Принял очень глупое решение положиться на ChatGPT - я ожидал увидеть поля формы