我有一個模型,看起來像:Django ModelForm是否將未指定的字段設置爲空?
class MyModel(Model):
name = models.TextField(blank=True, default='')
bio = models.TextField(blank=True, default='')
和看起來像一個的ModelForm:
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = ('name', 'bio')
當我創建/初始化我的形式是這樣的:
form = MyModelForm(instance=my_model, data={'bio': 'this is me'}) # where my_model has a name already set
則:
form.is_valid() # evaluates to true
form.save() # overwrites the name field in my_model and makes it blank!
這是預期的行爲?我如何改變這一點,以便我可以確保如果表單中沒有指定一個字段,但是它已經存在於實例中,它沒有被空字符串覆蓋?
謝謝!當我有動態模型時,防止意外覆蓋數據的好主意 – 2013-03-13 00:52:02
data.update(request.POST.dict()) – 2014-08-31 11:33:29
@Gromish我做了一個快速測試,對於多關係的我來說,它似乎工作正常。你可能會更好地提出一個新問題,而不是在這裏留言,因爲更多的人會看到它。 – Alasdair 2015-02-11 14:48:14