2013-02-06 105 views
7

在Django窗體上,如果用戶將其留空,如何爲字段指定默認值?初始設置初始值,但用戶可以刪除它。Django窗體:默認值,如果用戶離開字段爲空

+0

我想你應該在模型 – daveoncode

+0

您可以處理在現場驗證(clean_fieldname)方法設置的默認值。 https://docs.djangoproject.com/en/dev/ref/forms/validation/ – PepperoniPizza

+0

謝謝,clean_fieldname似乎是要走的路。希望有一種方法可以在我定義字段時指定它,但我想不是。 – user984003

回答

6

如果您使用的是ModelForm只需按照丹的建議。

如果您只是使用Form,那麼您可能必須指定如何處理驗證。 Example Documentation

class YourForm(forms.Form): 
    ... 

    def clean_field(self): 
     data = self.cleaned_data['field'] 
     if not data: 
      data = 'default value' 

     return data 
+0

'def clean_field(self):return self.cleaned_data ['field'] or'default value'' –

4

Set a default value in the model.

class YourModel(models.Model): 
    this_field = models.TextField(default="default_value") 
+0

我試了forms.CharField(默認=「0」),並得到一個錯誤消息:「__init __()有一個意想不到的關鍵字參數'默認'」 – user984003

+0

將其添加到實際模型,而不是形式。你的模型將在'models.py'中。通過這種方式,無論何時保存模型的副本(在您的示例中通過表單),默認值都將添加到該模型中(如果它留空)。我認爲這是比通過字段驗證更好的解決方案,特別是如果您要允許使用管理員。 –

+0

啊,我明白你的意思了。是的,除了我的表單和模型不匹配之外,這是行得通的。表單域是同一列中的所有行。 – user984003

相關問題