2014-09-25 3 views
0

내 질문은 양식에 메서드를 만들 수 있습니까?forms.Form에서 메서드 만들기

UserChangeForm에서 메소드를 만들고 싶습니다.이 메소드는 어떤 것을 제어해야합니다. 그리고 커밋하는 경우 어떻게 save()에서이 메서드를 호출 할 수 있습니까? forms.form에서 나는 save()도 생성해야합니까? 난 항상

'슈퍼'개체가

내가 생각 '저장'에는 속성이 없습니다이 오류가있어이 길에

class UserChangeForm(forms.Form): 
    #fields for the form 

    def create_club_contact(self): 
     user = super(UserChangeForm, self).save(commit=False) 

     if information is None: 
      #create clubcontact 
     else: 
      #update clubcontact 
     return clubcontact 

    def clean_password2(self): 
     #check password 
     return password2 

    def save(self): 
     data = self.cleaned_data 
     user = TennisClub(link=data['link'], name=data['name']) 
     user.save() 
     contact = self.create_club_contact() 
     user.club_contact = contact 
     user.save() 

:

나는이 시도 forms.Form에 save() 메소드가 필요하지만, 어떻게해야할지 모릅니다. 문서에서 나는 그런 예를 보지 못했습니다.

도와 주셔서 감사합니다.

+0

첫째, 질문과 초보자 것에 대해 사과하지 않는 : 당신의 방법 save()의 끝이를 넣고 다시 시도

. 거기에 대해서는 아무런 문제가 없습니다. 'contact = self.create_club_contact()'줄에서'save()'내에서 메소드를 호출합니다. 그게 사실이야, 너의 문제는 실제로 어디 있니? 마지막에'user.save()'를 두 번 만들지 말아야한다. 그리고 이걸 수정하십시오 :'name = data [ 'name']'~'name = data [ 'name']' – cezar

답변

0
class MyForm(forms.Form): 
    def __init__(self): 
     self.member = False 

    # example of a method with return statement 
    def my_method(self): 
     return something 

    # example for a void method, no return value 
    def another_method(self): 
     self.member = True 

    def save(self): 
     my_variable = self.my_method() 
     self.another_method() 
     # continue with your logic 

편집 :

난 당신이 방법을 생성하고 호출에 문제가없는 것 같아요. 위 내용은 아마도 여러분에게 분명 할 것입니다. 그러나 당신에게는 또 다른 문제가있는 것처럼 보입니다. 그러나 당신은 그것을 올바르게 질문 할 수 없습니다.

양식은 Form에서 상속됩니다. 부모 클래스 Form은 메소드 save()을 갖고 있으며이를 대체하려고합니다. 모든

return super(UserChangeForm, self).save()