当我尝试将表单数据插入django数据库时,在调用函数save()
时出现错误。
form.save() AttributeError: 'FormName' object has no attribute 'save'
谁能帮助我了解为什么该对象没有保存属性?
答案 0 :(得分:0)
表单对象不是ModelForm或Model对象。您猜测在表单上调用save()可能是合乎逻辑的,但是,它并不直接与数据库对话。
以最简单的方式,如果您需要使用Django的ORM插入数据库,则需要创建ModelForm
或Model
的子类。它们通常映射到单个数据库表。来自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
您应该将上述类AuthorForm
和Author
保留在两个不同的.py文件中,以实现模块化。