首页 > 解决方案 > 在 Django 数据库中插入表单数据

问题描述

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

form.save() AttributeError: 'FormName' object has no attribute 'save'

谁能帮我理解为什么这个对象没有属性保存?

标签: django

解决方案


表单对象不是 ModelForm 或模型对象。您对表单调用 save() 的猜测可能是合乎逻辑的,但是,它并不直接与数据库对话。

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

class AuthorForm(ModelForm):
    class Meta:
        model = Author # specify model which talks to database.
        fields = ['name', 'title', 'birth_date']

在 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 

您应该保留上述类AuthorFormAuthor两个不同的 .py 文件以实现模块化。


推荐阅读