私がどのように見えるのモデルがあります。その後、Django ModelFormは未指定のフィールドを空に設定しますか?
form = MyModelForm(instance=my_model, data={'bio': 'this is me'}) # where my_model has a name already set
:
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.is_valid() # evaluates to true
form.save() # overwrites the name field in my_model and makes it blank!
これは予想される動作ですか?フォーム内でフィールドが指定されていないのに空の文字列で上書きされていないことがインスタンス内にすでに存在することを保証できるように、これをどのように変更しますか?
ありがとうございます!私が動的なモデルフォームを持っているときにデータが誤って上書きされるのを防ぐための素晴らしいアイデア –
data.update(request.POST.dict()) –
@Gromish私は簡単なテストをしました。より多くの人々がそれを見るので、ここにコメントを残すのではなく、新しい質問をする方がよいかもしれません。 – Alasdair