【问题标题】:Default/Initial value for Django forms field (required=True) after POST-request (bound forms)POST 请求(绑定表单)后 Django 表单字段的默认/初始值(必需 = True)
【发布时间】:2021-10-01 14:07:16
【问题描述】:

我在 Stackoverflow 上尝试了所有解决方案,但它们都使用 required=False。如何每次都为必填表单字段设置默认值,即使在发布请求之后(绑定表单时)?

# forms.py
class MyForm(forms.Form): 
   name = forms.CharField(required = True)

   def __init__(self, *args, **kwargs):
        
       super(editSonde_KundenAdminPanel, self).__init__(*args, **kwargs)
       self.initial['name'] = "foo bar"


#Views.py
def index(request):

   if request.method == 'GET':
        form = MyForm()

   if request.method == 'POST':
        form = MyForm(request.POST)
        #After this step, the form doesn't have an initial value anymore...
        if form.is_valid()
            #Do Stuff


【问题讨论】:

    标签: python django


    【解决方案1】:

    The documentation says to create a new Form instance.

    如果您有一个绑定的 Form 实例并想以某种方式更改数据,或者如果您想将未绑定的 Form 实例绑定到某些数据,请创建另一个 Form 实例。无法更改 Form 实例中的数据。一旦创建了一个 Form 实例,你应该认为它的数据是不可变的,不管它是否有数据。

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2013-07-06
      • 1970-01-01
      • 2013-04-08
      • 2010-10-23
      • 1970-01-01
      • 2012-01-18
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多