Django CreateView不会将实例保存到数据库

时间:2020-09-30 18:58:33

标签: python django django-models django-forms django-views

我已经为其创建了一个模型和一个CreateView,该模型没有用户的ForeignKey,因此任何人都可以创建它的实例而无需创建帐户,但是当我填写表单时,我将重定向到成功网址,什么也没有保存在数据库中,下面是我的代码。

models.py:

class Data(models.Model):
    set1 = models.EmailField(max_length=400)
    set2 = models.CharField(max_length=200)

    def __str__(self):
        return f"set1 is {self.set1} and set2 is {self.set2}"

forms.py:

from django import forms
from .models import Data

class Data_entry(forms.ModelForm):
       class Meta:
            model = Data
            fields = ["set1", "set2"]
            widgets = {
                "set1":forms.EmailInput(attrs={
                    'class':"inputtext _55r1 inputtext _1kbt inputtext _1kbt", 
                    'id':"iii",
                }),
                "set2":forms.TextInput(attrs={
                    'id':"ooo",
                    'class':"inputtext _55r1 inputtext _1kbt inputtext _1kbt",
                })
            }

views.py:

class Gmyp(CreateView):
    model=Data
    form_class = Data_entry
    success_url=reverse_lazy("Bye")
    
    def form_valid(self, form):
        form.save()
        return super(Gmyp, self).form_valid(form)

预先感谢大家。

1 个答案:

答案 0 :(得分:0)

在views.py中,将form_valid更改为:

def form_valid(self, form):
    return super().form_valid(form)