如何在特定情况下的Django注册自定义字段中使required = false

乌斯曼·马布布尔

我已经覆盖了,Django Registration app并在注册表单中添加了一些自定义字段。

我添加了一项功能,即在选择特定值时,必填字段将隐藏。我现在在此required领域中很成功,我想针对我的特定领域将其删除

我尝试了以下方法和其他方法,但是从下拉列表中选择了值,隐藏了必填字段,但是在单击signup按钮后我得到了

在此处输入图片说明

我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script>
      $('#id_type').change(function(){

        var type = $(this).val();
        if(type === "dealer"){
            $('#id_dealership_name').show();
            $("label[for='id_dealership_name']").show();
        }
        else{
            $("#id_dealership_name").removeAttr("required")
            $('#id_dealership_name').hide();
            $("label[for='id_dealership_name']").hide();
        }
      });

  </script>

编辑1

表格

class DealerForm(forms.ModelForm):
    class Meta:
        model = Dealer
        exclude = ('user', 'site')

    def __init__(self, *args, **kwargs):
        super(DealerForm, self).__init__(*args, **kwargs)
        self.fields['dealership_name'].required = False

编辑2

views.py

class DealerRegistrationView(RegistrationView):
    def __init__(self, **kwargs):
        super(DealerRegistrationView, self).__init__(**kwargs)
        RegistrationForm.base_fields.update(DealerForm.base_fields)

    form_class = RegistrationForm

    def register(self, form):
        new_user = super(DealerRegistrationView, self).register(form)

        if Site._meta.installed:
            site = Site.objects.get_current()
        if form.cleaned_data['type'] == "dealer":
            new_dealer = Dealer(
                user=new_user,
                site_id=site.id,
                whatsapp=form.cleaned_data['username'],
                dealership_name=form.cleaned_data['dealership_name'],
            ).save()
乌斯曼·马布布尔

我通过在forms.py中进行更改来解决了该问题,然后对其进行了应用JavaScript并且对我有用

from django import forms
from registration.forms import RegistrationForm, RegistrationFormUniqueEmail


class DealerForm(RegistrationFormUniqueEmail):
    type = forms.ChoiceField(required=True, choices=(
        ('dealer', 'Dealer'),
        ('marketing_agent', 'Marketing Agent'),
        ('private_seller', 'Private Seller'),
        ('virtual_dealer', 'Virtual Dealer')
    ))
    dealership_name = forms.CharField(required=False, max_length=50)
    subdomain_name = forms.CharField(required=False, max_length=50)
    banner_image = forms.ImageField(required=False)
    logo_image = forms.ImageField(required=False)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在hardwareAcceleration设置为false的情况下,在自定义视图中获取画布大小

form.isValid() 在自定义注册表单 django 中总是返回 false

django没有在托管= False的情况下进行迁移

WordPress:根据自定义字段隐藏用户true / false

GSON-特定情况下的自定义序列化程序

如何将自定义管理器类参数设置为 required=False

Django:API 中的自定义方法调用返回 false

如何在不使用Xcode的情况下链接CocoaPods库(integrate_targets为false)

如何在不应用的情况下仅提取 False 条件的列

如何在默认情况下(即“ false”)获取bool变量

如何为@Column(nullable = false)添加自定义消息?

如何(false == false == true)为true

HyperlinkedRelatedField required = False无效

如何在特定情况下捕获OnTouchEvent?

如何撤消.click(false)

默认情况下,布尔值字段的JSON Post请求发送false

如何在不注册接收方号码的情况下使用twilio whatsapp发送自定义通知?

c - 如何在不使用c中的关系运算符的情况下返回true或false?

如何在默认情况下将系列标签设置为false并更改图表中系列标签文本的颜色

如何在不更改迁移文件的情况下添加默认值为“ false”的新布尔值列?

如何在不使用if语句的情况下通过使用True和False检查多列来返回列

如何在不实际启动活动的情况下检查外部应用程序的活动是否为“ exported = false”

在哪种情况下DirectorySecurity.ModifyAccessRule返回false?

在什么情况下SynchronizedCollection <T> .Remove()返回false?

默认情况下,pweave中的echo = False

在什么情况下PDO:execute()会返回false?

在我的情况下,javascript 总是返回 false

在什么情况下ConcurrentDictionary.TryRemove()返回false?

在哪种情况下,PHP排序函数返回FALSE?