應該在每個create
方法之後調用保存方法還是調用create
方法自動調用save
方法?何時應該在Django中調用save方法?
如果在創建對象後自動調用save
方法,那麼save
方法的用法是什麼?
謝謝。
應該在每個create
方法之後調用保存方法還是調用create
方法自動調用save
方法?何時應該在Django中調用save方法?
如果在創建對象後自動調用save
方法,那麼save
方法的用法是什麼?
謝謝。
保存save
方法應該用於修改通過除create
之外的任何其他方法獲得的對象,例如.objects.get
。否則,您的修改將丟失。
下面是一個示例片段,顯示了save方法的良好用法。這基本上是從提交的表格中獲取數據,然後在「幕後」添加其他信息。
#Model
class Foo(models.Model):
field_one = models.CharField(max_length=10)
field_two = models.CharField(max_length=10)
field_three = models.CharField(max_length=10)
#Form
class FooForm(ModelForm):
class Meta:
model = Foo
exclude = ('field_three') #form will just show field_one and field_two
#View
def FooView(request):
if request.method == 'POST'
form = FooForm(request.POST) #gets field_one and two from form data
if form.is_valid():
new_foo = form.save(commit = False) #doesn't actually save yet
new_foo.field_three = 'Foobar!' #add data to field_three
new_foo.save() #now it saves all 3 fields
else:
form = FooForm()
return #add some sort of http response here
這裏的Django Docs與保存(一些更多的信息),並承諾=假
作爲aside-我剛剛意識到,如果要添加靜態字符串像我舉的例子一個模型顯示,你'做錯了。但想法是有哈哈。