我的问题是,我可以在表单中创建方法吗?
我想在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()
通过这种方式我总是得到这个错误
'super'对象没有属性'save'
我认为forms.Form需要一个save()方法,但我不知道,该怎么做才对。 在文档中,我没有看到这样的例子。
感谢您的帮助。
答案 0 :(得分: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()
,您想要覆盖它。
将其放在方法save()
的末尾,然后重试:
return super(UserChangeForm, self).save()