django 联系表数据未保存

问题描述 投票:0回答:0

我正在为我的兄弟建立一个网站,它需要一个联系表格,HTML 模板已经预先构建了一个,所以我根据模板中包含的内容自定义构建一个模型表格,到目前为止一切正常,除非您按下提交在网站上,数据未保存到数据库中,也无法在管理员中查看。

但是模板渲染一切正常,当您按下提交时页面重定向,如果所需字段不存在或包含无效条目,它也不会允许您提交。

我在终端得到这个'“POST/HTTP/1.1”200 15649'

所以它看起来像一个成功的 post 请求,但数据库中没有任何内容?我在这里错过了什么?

index.html

<form id="contact" action="" method="post">
                      {% csrf_token %}
                      {{ form.as_p }}
                      
                        <div class="row">
                          <div class="col-md-12">
                            <h2>Contact me</h2>
                          </div>
                          <div class="col-md-6">
                            <fieldset>
                              <input name="name" type="text" class="form-control" id="name" placeholder="Your name..." required="">
                            </fieldset>
                          </div>
                          <div class="col-md-6">
                            <fieldset>
                              <input name="email" type="text" class="form-control" id="email" placeholder="Your email..." required="">
                            </fieldset>
                          </div>
                          <div class="col-md-12">
                            <fieldset>
                              <textarea name="message" rows="6" class="form-control" id="message" placeholder="Your message..." required=""></textarea>
                            </fieldset>
                          </div>
                          <div class="col-md-12">
                            <fieldset>
                              <button type="submit" id="form-submit" class="button">Send Now</button>
                            </fieldset>
                        </div>
                    </form>

表格.py

from django import forms
from .models import Contact


class ContactForm(forms.ModelForm):
    
    class Meta:

        model = Contact
        fields = ['name', 'email', 'message']


views.py

from django.shortcuts import render
from .forms import ContactForm

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



def contactView(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            
    else:
        form = ContactForm()    
    return render(request, 'rattlesnake/index.html', {'form':form})

模型.py

from django.db import models

class Contact(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    message = models.TextField() 


    def __str__(self):
        return self.name 

urls.py

from django.urls import path
from . import views



urlpatterns = [
    path('', views.home, name='home'),
    path('contact/', views.contactView, name='contact'),
]
python django django-models django-forms modelform
© www.soinside.com 2019 - 2024. All rights reserved.