if语句采用Django crispy形式,条件形式为layou

2024-09-30 05:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django crispy表单:一个典型的注册表单,带有电子邮件地址、密码字段和提交操作。在

我有一个隐藏字段从我的url python文件传递到Django crispy表单,名为“billing_secret”。不同的URL的计费秘密不同。在

目标: 因此,必须为“提交秘密条款”和“提交特定条件的url”复选框禁用。在

我需要补充两件事。在

  1. 在Crispy表单中添加if语句,以仅显示特定账单机密的单选复选框。例如,如果计费密码是“apples”show收音机,则默认为“no”。如果帐单机密是其他任何东西,则将收音机隐藏,默认为是。在

这就是我目前所拥有的(不起作用)。抱歉,我对Python完全陌生。在

email = forms.EmailField(label=_("Email"))
password1 = forms.CharField(widget=forms.PasswordInput,label=_("Password"))
billing_secret = forms.CharField()
termsandcond = forms.TypedChoiceField(
        label = "Do you agree to the T&C's?",
        choices = ((1, "Yes"), (0, "No")),
        coerce = lambda x: bool(int(x)),
        widget = forms.RadioSelect,
        initial = '0',
        required = True,
    )

def __init__(self, *args, **kwargs):
    billing_secret = kwargs.pop('billing_secret', None)
    super(RegistrationForm, self).__init__(*args, **kwargs)
    self.helper = FormHelper()
    self.helper.form_method = 'post'
    self.helper.form_action = '.'

    self.helper.layout = Layout(
        Field('email', placeholder=_("Email")),
        Field('password1', placeholder=_("Password")),
        Field('billing_secret', value=billing_secret, type="hidden"),

        if billing_secret is 'apples':
            return InlineRadios('termsandcond'),
        else:
            return InlineRadios('termsandcond', initial="1", type="hidden"),

        Submit("save", _("Get Started"),css_class="pull-right"),
    )
  1. 当单选按钮值为“否”时禁用“提交”按钮,当“是”时启用。在

我计划包括:

http://jsfiddle.net/8YBu5/7/

这样一来,用户在注册时必须同意T&C,然后才允许提交他们的详细信息,如果在指定的url上,帐单密码是“苹果”。如果它们位于不同的url上,则单选框不存在,并且启用了submit按钮。在


Tags: djangoselfhelperurl密码表单fieldsecret
1条回答
网友
1楼 · 发布于 2024-09-30 05:24:42

默认情况下隐藏按钮:

^{1}$

并使用javascript检查单选按钮,当用户单击accept时,只需选择按钮并显示它。在

编辑: 对于条件元素:

^{pr2}$

相关问题 更多 >

    热门问题