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

时间:2018-11-26 13:46:55

标签: django

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

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

谁能帮助我了解为什么该对象没有保存属性?

1 个答案:

答案 0 :(得分:0)

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

以最简单的方式,如果您需要使用Django的ORM插入数据库,则需要创建ModelFormModel的子类。它们通常映射到单个数据库表。来自Django's official doc的内容:

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文件中,以实现模块化。