Django 3 Данные формы не отправляются в БД, а я бы хотел, чтобы отправлялись, что я упускаю?

Это на ранней стадии тестирования, и я ожидаю, что у меня должно быть достаточно средств для записи в БД, и я не вижу никаких признаков сбоя, кроме пустой таблицы после нескольких попыток POST.

#ВЕБ-ФОРМА

        <form action="/" method="POST" id="ticketsubmitform">
            {% csrf_token %}
            <div class="form-control" {% if form.date_submitted.errors %}errors{% endif %}>
                {{ form.date_submitted.label_tag }}
                {{ form.date_submitted }}
                {{ form.date_submitted.errors }}
            </div>
            <div class="form-control" {% if form.contact_name.errors %}errors{% endif %}>
                {{ form.contact_name.label_tag }}
                {{ form.contact_name }}
                {{ form.contact_name.errors }}
            </div>
            <div style="padding-bottom: 12pt">
                <button type="submit"> >>> Submit Ticket >>> </button>
            </div>
        </form>

#views.py

def ticketing_app(request):
    if request.method == 'POST':
        form = TicketForm(request.POST)
        if form.is_valid():
            ticket = Ticket(
                date_submitted=form.cleaned_data['date_submitted'], 
                contact_name=form.cleaned_data['contact_name'],

            )
            ticket.save()
    else:
        form = TicketForm()

    return render(request,'authentication/ticketing-app.html',{
        "form": form
    })

#forms.py

class TicketForm(forms.Form):
    date_submitted = forms.DateField(label="Date Submitted:", 
        required=True,
        error_messages={
            "required": "Date must not be empty."
        
    })
    contact_name = forms.CharField(label="Contact Name:", max_length=45, 
        required=True,
        error_messages={
            "required": "Contact Name must not be empty.",
            "max_length": "Please enter a shorter name."
    })

#models.py

class Ticket(models.Model):
    #---Base Meta-----------------------------------------
    date_submitted = models.DateField(max_length=15)
    contact_name = models.CharField(max_length=45)

  • Нет ошибок при отправке - [29/Sep/2021 21:18:55] "POST / HTTP/1.1" 200
  • Я не вижу ничего недостающего, что могло бы помешать записи в БД

У вас есть GET /ticketing/ и POST / - вы размещаете форму на другом URL.

Чтобы повторно отправить форму на тот же URL, измените тег формы на один из следующих:

# Submit to the same URL
<form action="." method="POST" id="ticketsubmitform">

# Hardcode the URL
<form action="/ticketing/" method="POST" id="ticketsubmitform">

# Use the URL tag - you will need to change this depending on your URL pattern names
<form action="{% url 'ticketing' %}" method="POST" id="ticketsubmitform">
Вернуться на верх