code

Django : form.save ()를 재정의하는 방법?

codestyles 2020. 12. 12. 10:52
반응형

Django : form.save ()를 재정의하는 방법?


내 모델에는 몇 개의 부울 필드가 있습니다. 나는 이것을 MultipleChoiceField수정 된 으로 렌더링하는 3 세트 로 나눴습니다 CheckboxSelectMultiple.

이제이 데이터를 다시 DB에 저장해야합니다. 즉, 단일 위젯에서 반환 된 데이터를 여러 부울 열로 분할해야합니다. 나는 이것이 적절한 생각 save(), 방법 없음?

질문은 어떻게해야합니까? 이 같은?

def save(self, commit=True):
    # code here
    return super(MyForm, self).save(commit)

그렇다면 ... 값을 어떻게 설정합니까?

self.fields['my_field'].value = 'my_flag' in self.cleaned_data['multi_choice']

또는 뭔가? 모든 데이터는 어디에 저장됩니까?


데이터를 저장할 위치는 새 모델 인스턴스입니다.

def save(self, commit=True):
    instance = super(MyForm, self).save(commit=False)
    instance.flag1 = 'flag1' in self.cleaned_data['multi_choice'] # etc
    if commit:
        instance.save()
    return instance

참고 URL : https://stackoverflow.com/questions/3927305/django-how-to-override-form-save

반응형