1
我已覆蓋Django Registration app
並在註冊表單中添加了一些自定義字段。如何在Django註冊自定義字段中爲特定情況設置required = false
我已添加功能,在選擇特定值時,必填字段將隱藏。我現在成功了,現在我想刪除我的特定領域的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
form.py
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
EDIT 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()
重寫模板(HTML)是不夠的;你實際上需要重寫表單本身。 – Selcuk
我已經覆蓋了表單並在其中添加了一些自定義字段,現在我想隱藏並根據「下拉列表」選擇對某些字段進行必需= false。 –
在這種情況下,使用JQuery將'required = False'設置爲(.py)級別並將'required'HTML屬性設置爲'true'會更好。 – Selcuk