2 回答
TA贡献1880条经验 获得超4个赞
所以在面向对象编程中,对象是类的实例。所以模型实例和模型对象是一样的。
让我们为此做一个例子:
# This is your class
class ToDo(models.Model):
name = models.CharField(max_length=100)
due_date = models.DateField()
# If somewhere I call
my_var = ToDo() # my_var contain an object or an instance of my model ToDo
至于你关于表单的问题,Django 中的每个表单可能包含也可能不包含一个实例。此实例是表单修改的对象。当您创建一个空表单时,这form.instance是None,因为您的表单未绑定到对象。但是,如果您构建一个表单,将要修改的对象作为其参数或填充后,则该对象就是实例。
例子:
form = CommentForm()
print(form.instance) # This will return None, there is no instance bound to the form
comment = Comment.objects.get(pk=1)
form2 = CommentForm(instance=comment)
print(form2.instance) # Now the instance contain an object Comment or said an other way, an instance of Comment. When you display your form, the fields will be filled with the value of this instance
我希望它更清楚一点。
TA贡献1895条经验 获得超3个赞
CommentForm
是ModelForm
并且ModelForm
具有instance
属性(您可以设置(更新场景)或 __init__
方法CommentForm
将实例化您设置为的模型的新模型实例Metaclass
来自BaseModelForm来源:
if instance is None:
# if we didn't get an instance, instantiate a new one
self.instance = opts.model()
object_data = {}
添加回答
举报