Моя форма отправляется, но данные не добавляются в базу данных django

#python #html #django #django-forms

#python #HTML #django #django-forms

Вопрос:

Я пытаюсь создать страницу контактов веб-сайта, используя django, где клиент вводит данные, и они отправляются в базу данных, форма отправляется, проект выполняется без ошибок, но данные в БД не добавляются. Вот мой views.py файл

 from datetime import datetime
from firstapp.models import Contact

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

def apply(request):
    return render(request,'apply.html')

def about(request):
    return render(request,'about.html')

def socials(request):
    return render(request,'social.html')

def contact(request):
    if request.method == "POST":
        name = request.POST.get("name")
        email = request.POST.get("email")
        subject = request.POST.get("subject")
        message= request.POST.get("message")
        contact=Contact(name=name,email=email,subject=subject,message=message,date=datetime.today())
        contact.save
    
    return render(request,'contact.html')
  

вот мой contact.html

 {% block title %}Contact {% endblock title %}
{% block body %}
<h2 align="center">CONTACT US </h2>
<div class="container-md">
<form method="POST" action="/contact/">
{% csrf_token %}
<div class="form-group">
    <label for="exampleFormControlInput1">Name</label>
    <input type="text" class="form-control" id="exampleFormControlInput1" name="name" placeholder="John Smith">
  </div>
  <div class="form-group">
    <label for="exampleFormControlInput1">Email address</label>
    <input type="email" class="form-control" id="exampleFormControlInput1" name="email" placeholder="name@example.com">
  </div>
  <div class="form-group">
    <label for="exampleFormControlInput1">Subject</label>
    <input type="text" class="form-control" id="exampleFormControlInput1" name="subject" placeholder="Business
    | Suggestions | Query | Complaint | Other">
  </div>
  <div class="form-group">
    <label for="exampleFormControlTextarea1">Message</label>
    <textarea class="form-control" name="message" id="exampleFormControlTextarea1" rows="3"></textarea>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>


</form>
</div>

{% endblock body%}
  

И вот мой models.py

 from django.db import models

# Create your models here.

class Contact(models.Model):
    name = models.CharField(max_length=50)
    email =models.EmailField(max_length=254)
    subject=models.CharField(max_length=10)
    message=models.CharField(max_length=1000)
    date=models.DateField()
  

Комментарии:

1. Я могу предположить, что вы не вызываете метод сохранения вашего экземпляра. Вы забыли ввести скобки после сохранения: contact.save() вместо contact.save .

2. упс @AlexanderYudkin спасибо, я пропустил это

Ответ №1:

Как я писал в комментариях ранее, вы забыли ввести скобки после save: contact.save() вместо contact.save.

Было бы лучше и красивее, если бы вы сделали это следующим образом:

 def contact(request):
    if request.method == "POST":
      Contact.objects.create(**request.POST)
    return render(request,'contact.html')
  

Комментарии:

1. спасибо, cionxesports.herokuapp.com это текущее состояние моего сайта.