사용자가 내 사이트에 목록을 만들고 일반 CreateView를 사용하여 만들 수 있습니다. 목록의 필드 중 하나는 소유자 (누가 그것을 작성했는지)입니다.Django : CreateVView.form_valid의 ModelForm에 필드를 추가하십시오.
소유자를 만들고있는 사용자가 이미 소유자이기 때문에 사용자에게 소유자를 선택하도록 요청하는 것은 의미가 없습니다.
그래서 form_class가 소유자 필드를 제외하는 "model"매개 변수 대신 "Form_class"를 CreateView로 전달합니다.
양식을 저장하려면 소유자를 추가해야합니다.
CreateView를 서브 클래 싱하고 form_valid 메소드를 추가했지만,이 작업을 수행하는 데 문제가 있습니다.
지금까지, 나는
class MyCreateView(CreateView)
form_class = ListForm
def form_valid(self, form):
form.??? = self.request.user -->> expression of the left side
return super(MyCreateView, self).form_valid(form)
그것은 간단하게 뭔가해야 얻었다. this thread에서 그들은 self.object.owner
을 사용한다고 말하지만 self.object는 None
유형입니다.
어떻게 처리해야합니까? 감사
를 호출하고 있습니다. self.instance는 "DoesNotExist"를 리턴하고 self.instance는 AttributeError를 리턴합니다. 'MyCreateView'오브젝트에는 '인스턴스'속성이 없습니다. ListForm 또한 ModelForm – duduklein
입니다. form.instance = MyModel()을 추가 한 다음 form.instance.owner = self.request.user를 추가했습니다. 이것은 적절하게 작동하지만 모델이 db에 저장되면 표시된 양식의 모든 필드가 비어 있습니다. – duduklein
귀하의 게시물을 잘못 읽었습니다. 업데이트 내 대답 – ojii