복붙노트

[PYTHON] 클래스 기반 일반 뷰에서 초기 값을 modelform으로 설정합니다.

PYTHON

클래스 기반 일반 뷰에서 초기 값을 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])

해결법

  1. ==============================

    1.초기 값을 포함하는 사전을 리턴하는 get_initial 메소드를 정의해야합니다.

    초기 값을 포함하는 사전을 리턴하는 get_initial 메소드를 정의해야합니다.

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

    또는 초기 값을 정의 할 수 있습니다.

    class IncidentUpdateView(UpdateView):
        initial = { 'value1': 'foo', 'value2': 'bar' }
    
  2. from https://stackoverflow.com/questions/11096617/set-initial-value-to-modelform-in-class-based-generic-views by cc-by-sa and MIT license