Django 在 __init__.py 中添加属性 class 形式
Django add an attribute class form in __init__.py
我的表格class
from django import forms
class Form(forms.Form):
your_name = forms.CharField(label='Your name ', max_length=100)
我的应用文件__init__.py
from django import forms
from my_app.forms import Form
from captcha.fields import ReCaptchaField
def register(form):
form.captcha=CaptchaField()
register(Form)
__init__.py
中的代码添加了一个属性验证码,但它不在页面上。
我试过了
我的表格class
from django import forms
class Form(forms.Form):
your_name = forms.CharField(label='Your name ', max_length=100)
captcha=CaptchaField()
它有效,但我有一个不同的!我想添加一个 сaptcha 多种形式。
我想在不更改 classes 形式的情况下添加验证码。我想在初始化期间更改 classes 的形式。
怎么做???
您需要将字段分配给 form.fields
,而不仅仅是 form
。
然而,这并不是真正的方法。相反,您应该使所有表单都继承自共享父项 class,它定义了 captcha
字段。
从评论继续,让基础 class 继承自 django.forms.Form
,并为所有您想要 captcha
字段的表单子class;
from captcha.fields import ReCaptchaField
from django.forms import Form
class CaptchaMixin():
captcha = ReCaptchaField()
class ActualForm(CaptchaMixin, Form):
pass
我的表格class
from django import forms
class Form(forms.Form):
your_name = forms.CharField(label='Your name ', max_length=100)
我的应用文件__init__.py
from django import forms
from my_app.forms import Form
from captcha.fields import ReCaptchaField
def register(form):
form.captcha=CaptchaField()
register(Form)
__init__.py
中的代码添加了一个属性验证码,但它不在页面上。
我试过了
我的表格class
from django import forms
class Form(forms.Form):
your_name = forms.CharField(label='Your name ', max_length=100)
captcha=CaptchaField()
它有效,但我有一个不同的!我想添加一个 сaptcha 多种形式。 我想在不更改 classes 形式的情况下添加验证码。我想在初始化期间更改 classes 的形式。 怎么做???
您需要将字段分配给 form.fields
,而不仅仅是 form
。
然而,这并不是真正的方法。相反,您应该使所有表单都继承自共享父项 class,它定义了 captcha
字段。
从评论继续,让基础 class 继承自 django.forms.Form
,并为所有您想要 captcha
字段的表单子class;
from captcha.fields import ReCaptchaField
from django.forms import Form
class CaptchaMixin():
captcha = ReCaptchaField()
class ActualForm(CaptchaMixin, Form):
pass