无法使用 django 模型表单将数据获取到我的数据库中

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

我创建的表单没有将数据插入到我的数据库表中。据我所知,我已经正确完成了所有操作,但它仍然拒绝这样做,而是在控制台中“发布”并清除表单字段,而不在数据库中创建任何内容。输入的数据都没有保存在任何地方?以下是下面的文件,希望有人能看到我丢失的东西。

ps。我已经连接了数据库,运行了迁移并创建了超级用户,但仍然没有任何结果。

模型.py

from django.db import models


Media_Choices = (
    ("TV", "TV"),
    ("Radio", "Radio"),
    ("Youtube", "Youtube"),
    ("Podcast", "Podcast"),
)

class Appear(models.Model):
       Show = models.CharField(max_length=100)
       Media = models.CharField(max_length=30, blank=True, null=True, choices=Media_Choices)
       Episode = models.IntegerField()
       Date = models.DateField(max_length=100)
       Time = models.TimeField(auto_now=False, auto_now_add=False)
       Producer = models.CharField(max_length=100)
       Producer_Email = models.EmailField(max_length=254)

def __unicode__(self):
    return self.Show + ' ' + self.Producer_Email

表格.py

from django import forms
from django.core.exceptions import ValidationError
from django.forms import ModelForm
from .models import Appear

class AppsForm(ModelForm):
     class Meta:
        model = Appear
        fields = '__all__'

def clean_Producer_Email(self):
    Producer_Email = self.cleaned_data.get('Producer_Email')
    if (Producer_Email == ""):
        raise forms.ValidationError('field cannot be left empty')

    for instance in Appear.objects.all():
        if instance.Producer_Email == Producer_Email:
            raise forms.ValidationError('Please fill in correct email')
    return Producer_Email

views.py

from django.shortcuts import redirect, render
from django.http import HttpResponse
from .forms import AppsForm
from .models import Appear


def AppS(request):
    if request == 'POST':
       form = AppsForm(request.POST)
       if form.is_valid():
          Apps = form.save(Commit=False)
          Apps.save()
   else:
     form = AppsForm()
   return render(request, 'AppsForm.html', {'form': form})

   def results(request):
   return render(request, 'Results.html')

AppsForm.html

<body>
{% extends 'base.html' %}

{% block content %}

{% load crispy_forms_tags %}

<form action="" method="POST">

    {% csrf_token %}

    {{ form|crispy }}

    <input type="submit" value="submit">
</form>
{% endblock %}
python django database django-models django-forms
1个回答
0
投票

您可能会丢失表单错误,从而导致表单未保存。如果有任何表格错误,请尝试打印。

if form.is_valid():
    Apps = form.save(Commit=False)
    Apps.save()
else:
    print(form.errors)
© www.soinside.com 2019 - 2024. All rights reserved.