라이브러리는 도서관 아닌가요

AttributeError at /main/'Form' object has no attribute 'save' 본문

Django/Django Trouble Shooting

AttributeError at /main/'Form' object has no attribute 'save'

veryhi 2021. 10. 7. 16:26

Django에서 자주 만나는 에러인 AttributeError

 

아래의 경우는 form 작성 때 발생한 문제이다.

 

예를 들어, form의 클래스를 상속 받을 때 잘못되었을 경우가 있다.

from django import forms
from .models import Content

class ContentForm(forms.Form):
    def __init(self, *args, **kwargs):
        super(ContentForm, self).__init__(*args, **kwargs)
        self.fields['content'].widget.attrs.update({
            'class': 'form-control',
            'autofocus': True
        })

    class Meta:
        model = Content
        fields = ['content']

 

 

아래와 같이 고쳐주면 된다.

from django import forms
from .models import Content

class ContentForm(forms.ModelForm): # 바뀐 부분
    def __init(self, *args, **kwargs):
        super(ContentForm, self).__init__(*args, **kwargs)
        self.fields['content'].widget.attrs.update({
            'class': 'form-control',
            'autofocus': True
        })

    class Meta:
        model = Content
        fields = ['content']

 

AttributeError가 발생할 때 클래스 상속을 잘못 받았는지도 한 번 점검해보도록 하자.

Comments