web-dev-qa-db-ja.com

クラスベースのジェネリックビューで初期値をmodelformに設定します

クラスベースのジェネリックビューを使用していますが、フォームを更新するために初期値を設定する方法を教えてもらえますか?

Get_initial()メソッドを使用しようとしましたが、成功しませんでした。以下は私が試したコードです

  class IncidentUpdateView(UpdateView):
      form_class = IncidentForm
      form_class.initial = {"badge_number": '88888'}
      model = Incident
      template_name = 'hse/incident/incident_update.html'

     def get_initial(self, form_class):
        initials = {
         "badge_number": '88888'
         }
        form = form_class(initial=initials)
       return form

     def get_success_url(self):
        return reverse_lazy('hse-incident', args=[self.object.id])
25
Asif

初期値を含むディクショナリを返すget_initialメソッドを定義する必要があります。

class IncidentUpdateView(UpdateView):

    def get_initial(self):
        return { 'value1': 'foo', 'value2': 'bar' }

または、initial値を定義することもできます。

class IncidentUpdateView(UpdateView):
    initial = { 'value1': 'foo', 'value2': 'bar' }
44
Simeon Visser