Django: required field even with true=blank on form submision
I've a form that has a field 'instrucciones' that should be optional to complete. I've tried to modified it in the model and put it as a blank field, null true, and even use a default ('').
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
However, in submition I'm ask to complete this field. Why?
models.py:
class TamaniosCantidades(models.Model):
TAMANIOS = (('2x2', '2" x 2"',), ('3x3', '3" x 3"',),
('4x4', '4" x 4"',), ('5x5', '5" x 5"',))
CANTIDADES = (('50', '50',), ('100', '100',),
('150', '150',))
# usuario = models.ForeignKey(User, on_delete=models.DO_NOTHING)
tamanios = models.CharField(max_length=10, choices=TAMANIOS)
cantidades = models.CharField(max_length=10, choices=CANTIDADES)
imagenes = models.FileField(upload_to='imagenes/', null=True)
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
# uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.tamanios
forms.py
# Declare Forms
class StepOneForm(forms.Form):
tamanios = forms.ChoiceField(choices=TAMANIOS, widget=forms.RadioSelect(), label='Selecciona un tamaño')
cantidades = forms.ChoiceField(choices=CANTIDADES, widget=forms.RadioSelect(), label='Selecciona la cantidad')
class StepThreeForm(forms.ModelForm):
instrucciones = forms.CharField(widget=forms.Textarea)
class Meta:
model = TamaniosCantidades
fields = ('imagenes', 'instrucciones')
html:
{% csrf_token %}
<div class="form-group">
{{ form.imagenes|as_crispy_field }}
<div id="instrucciones-adicionales" style="display: none">
<p class="bold-font"> Instrucciones adicionales (opcional):</p>
{{ form.instrucciones|as_crispy_field }}
</div>
</div>
</br>
</br>
<p>O, sáltate este paso y envía tu arte por correo electrónico</p>
<button type="submit" class="btn btn-naranja text-white btn-block">Continuar
</button>
</form>
html django
add a comment |
I've a form that has a field 'instrucciones' that should be optional to complete. I've tried to modified it in the model and put it as a blank field, null true, and even use a default ('').
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
However, in submition I'm ask to complete this field. Why?
models.py:
class TamaniosCantidades(models.Model):
TAMANIOS = (('2x2', '2" x 2"',), ('3x3', '3" x 3"',),
('4x4', '4" x 4"',), ('5x5', '5" x 5"',))
CANTIDADES = (('50', '50',), ('100', '100',),
('150', '150',))
# usuario = models.ForeignKey(User, on_delete=models.DO_NOTHING)
tamanios = models.CharField(max_length=10, choices=TAMANIOS)
cantidades = models.CharField(max_length=10, choices=CANTIDADES)
imagenes = models.FileField(upload_to='imagenes/', null=True)
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
# uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.tamanios
forms.py
# Declare Forms
class StepOneForm(forms.Form):
tamanios = forms.ChoiceField(choices=TAMANIOS, widget=forms.RadioSelect(), label='Selecciona un tamaño')
cantidades = forms.ChoiceField(choices=CANTIDADES, widget=forms.RadioSelect(), label='Selecciona la cantidad')
class StepThreeForm(forms.ModelForm):
instrucciones = forms.CharField(widget=forms.Textarea)
class Meta:
model = TamaniosCantidades
fields = ('imagenes', 'instrucciones')
html:
{% csrf_token %}
<div class="form-group">
{{ form.imagenes|as_crispy_field }}
<div id="instrucciones-adicionales" style="display: none">
<p class="bold-font"> Instrucciones adicionales (opcional):</p>
{{ form.instrucciones|as_crispy_field }}
</div>
</div>
</br>
</br>
<p>O, sáltate este paso y envía tu arte por correo electrónico</p>
<button type="submit" class="btn btn-naranja text-white btn-block">Continuar
</button>
</form>
html django
add a comment |
I've a form that has a field 'instrucciones' that should be optional to complete. I've tried to modified it in the model and put it as a blank field, null true, and even use a default ('').
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
However, in submition I'm ask to complete this field. Why?
models.py:
class TamaniosCantidades(models.Model):
TAMANIOS = (('2x2', '2" x 2"',), ('3x3', '3" x 3"',),
('4x4', '4" x 4"',), ('5x5', '5" x 5"',))
CANTIDADES = (('50', '50',), ('100', '100',),
('150', '150',))
# usuario = models.ForeignKey(User, on_delete=models.DO_NOTHING)
tamanios = models.CharField(max_length=10, choices=TAMANIOS)
cantidades = models.CharField(max_length=10, choices=CANTIDADES)
imagenes = models.FileField(upload_to='imagenes/', null=True)
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
# uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.tamanios
forms.py
# Declare Forms
class StepOneForm(forms.Form):
tamanios = forms.ChoiceField(choices=TAMANIOS, widget=forms.RadioSelect(), label='Selecciona un tamaño')
cantidades = forms.ChoiceField(choices=CANTIDADES, widget=forms.RadioSelect(), label='Selecciona la cantidad')
class StepThreeForm(forms.ModelForm):
instrucciones = forms.CharField(widget=forms.Textarea)
class Meta:
model = TamaniosCantidades
fields = ('imagenes', 'instrucciones')
html:
{% csrf_token %}
<div class="form-group">
{{ form.imagenes|as_crispy_field }}
<div id="instrucciones-adicionales" style="display: none">
<p class="bold-font"> Instrucciones adicionales (opcional):</p>
{{ form.instrucciones|as_crispy_field }}
</div>
</div>
</br>
</br>
<p>O, sáltate este paso y envía tu arte por correo electrónico</p>
<button type="submit" class="btn btn-naranja text-white btn-block">Continuar
</button>
</form>
html django
I've a form that has a field 'instrucciones' that should be optional to complete. I've tried to modified it in the model and put it as a blank field, null true, and even use a default ('').
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
However, in submition I'm ask to complete this field. Why?
models.py:
class TamaniosCantidades(models.Model):
TAMANIOS = (('2x2', '2" x 2"',), ('3x3', '3" x 3"',),
('4x4', '4" x 4"',), ('5x5', '5" x 5"',))
CANTIDADES = (('50', '50',), ('100', '100',),
('150', '150',))
# usuario = models.ForeignKey(User, on_delete=models.DO_NOTHING)
tamanios = models.CharField(max_length=10, choices=TAMANIOS)
cantidades = models.CharField(max_length=10, choices=CANTIDADES)
imagenes = models.FileField(upload_to='imagenes/', null=True)
instrucciones = models.CharField(max_length=200, blank=True, null=True, default='')
# uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.tamanios
forms.py
# Declare Forms
class StepOneForm(forms.Form):
tamanios = forms.ChoiceField(choices=TAMANIOS, widget=forms.RadioSelect(), label='Selecciona un tamaño')
cantidades = forms.ChoiceField(choices=CANTIDADES, widget=forms.RadioSelect(), label='Selecciona la cantidad')
class StepThreeForm(forms.ModelForm):
instrucciones = forms.CharField(widget=forms.Textarea)
class Meta:
model = TamaniosCantidades
fields = ('imagenes', 'instrucciones')
html:
{% csrf_token %}
<div class="form-group">
{{ form.imagenes|as_crispy_field }}
<div id="instrucciones-adicionales" style="display: none">
<p class="bold-font"> Instrucciones adicionales (opcional):</p>
{{ form.instrucciones|as_crispy_field }}
</div>
</div>
</br>
</br>
<p>O, sáltate este paso y envía tu arte por correo electrónico</p>
<button type="submit" class="btn btn-naranja text-white btn-block">Continuar
</button>
</form>
html django
html django
asked Nov 21 '18 at 4:16
Omar GonzalesOmar Gonzales
58021440
58021440
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Try adding this to your form underneath class Meta:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
You can also use this method to add other attributes to your fields:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
self.fields['instrucciones'].label = 'Instrucciones'
self.fields['instructions'].help_text = 'Give instructions.'
You can even use it to get request in your form:
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(StepThreeForm, self).__init__(*args, **kwargs)
But you must also pass the request to the view:
def get_form_kwargs(self):
kwargs = super(ViewName, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53405174%2fdjango-required-field-even-with-true-blank-on-form-submision%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try adding this to your form underneath class Meta:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
You can also use this method to add other attributes to your fields:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
self.fields['instrucciones'].label = 'Instrucciones'
self.fields['instructions'].help_text = 'Give instructions.'
You can even use it to get request in your form:
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(StepThreeForm, self).__init__(*args, **kwargs)
But you must also pass the request to the view:
def get_form_kwargs(self):
kwargs = super(ViewName, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
add a comment |
Try adding this to your form underneath class Meta:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
You can also use this method to add other attributes to your fields:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
self.fields['instrucciones'].label = 'Instrucciones'
self.fields['instructions'].help_text = 'Give instructions.'
You can even use it to get request in your form:
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(StepThreeForm, self).__init__(*args, **kwargs)
But you must also pass the request to the view:
def get_form_kwargs(self):
kwargs = super(ViewName, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
add a comment |
Try adding this to your form underneath class Meta:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
You can also use this method to add other attributes to your fields:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
self.fields['instrucciones'].label = 'Instrucciones'
self.fields['instructions'].help_text = 'Give instructions.'
You can even use it to get request in your form:
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(StepThreeForm, self).__init__(*args, **kwargs)
But you must also pass the request to the view:
def get_form_kwargs(self):
kwargs = super(ViewName, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
Try adding this to your form underneath class Meta:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
You can also use this method to add other attributes to your fields:
def __init__(self, *args, **kwargs):
super(StepThreeForm, self).__init__(*args, **kwargs)
self.fields['instrucciones'].required = False
self.fields['instrucciones'].label = 'Instrucciones'
self.fields['instructions'].help_text = 'Give instructions.'
You can even use it to get request in your form:
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(StepThreeForm, self).__init__(*args, **kwargs)
But you must also pass the request to the view:
def get_form_kwargs(self):
kwargs = super(ViewName, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
edited Nov 21 '18 at 5:00
answered Nov 21 '18 at 4:23
WhodiniWhodini
50913
50913
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
add a comment |
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
Ty. Would you describe or post a link for further investigation on this?
– Omar Gonzales
Nov 21 '18 at 4:34
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
@OmarGonzales - I don't have a link handy, but what I recommend is to download the Django docs for your version and save it on your desktop. Then by searching command F self.init you should be able to get examples for other ways the method is used. I'll edit the post to show other ways you can use this method.
– Whodini
Nov 21 '18 at 4:41
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53405174%2fdjango-required-field-even-with-true-blank-on-form-submision%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown