在Django数据库中插入表单数据

在Django数据库中插入表单数据,django,Django,尝试将表单数据插入django数据库时,调用函数save()时出错 form.save()AttributeError:“FormName”对象没有属性“save” 有人能帮我理解为什么这个对象没有属性save吗?表单对象不是ModelForm或Model对象。您对表单调用save()的推测可能是合乎逻辑的,但是,它不会直接与数据库通信 以最简单的方式,如果需要使用Django的ORM插入数据库,则需要创建ModelForm或Model的子类。它们通常映射到单个数据库表。像这样来自: 在Auth

尝试将表单数据插入django数据库时,调用函数
save()
时出错

form.save()AttributeError:“FormName”对象没有属性“save”


有人能帮我理解为什么这个对象没有属性save吗?

表单对象不是ModelForm或Model对象。您对表单调用save()的推测可能是合乎逻辑的,但是,它不会直接与数据库通信

以最简单的方式,如果需要使用Django的ORM插入数据库,则需要创建
ModelForm
Model
的子类。它们通常映射到单个数据库表。像这样来自:

在AuthorForm类中,还可以在meta中指定模型。您可以这样定义模型:

class Author(models.Model):
    name = models.CharField(max_length=100)
    title = models.CharField(max_length=3, choices=TITLE_CHOICES)
    birth_date = models.DateField(blank=True, null=True)

    def __str__(self):
        return self.name 

为了模块化,您应该将上述类
AuthorForm
Author
保存在两个不同的.py文件中

您没有使用我正在使用form.py和models.py作为模型,并在admin.py中注册我的模型,在该文件中我创建了ModelForm类??更新了我的答案,如果它解决了您的问题,请告诉我。
class Author(models.Model):
    name = models.CharField(max_length=100)
    title = models.CharField(max_length=3, choices=TITLE_CHOICES)
    birth_date = models.DateField(blank=True, null=True)

    def __str__(self):
        return self.name