0
我有一個django格式的字段需要一個整數。 該字段中的默認值是' - '。 這意味着當用戶忽略該字段時,將返回表單字段錯誤。令人討厭的消息有一個惱人的'你'在它。Django字段錯誤消息
我該如何擺脫U?
的HTML
<div class="col-sm-1">
{% with childForm.age as field %}
<div class="form-group{% if field.errors %} has-error{% endif %}" id="children-age">
{{ field }}
{% if field.errors %}<p class="help-block">{% for error in field.errors %}{{ error }}{% endfor %}</p>{% endif %}
</div>
{% endwith %}
</div>
錯誤
forms.py
class TravelGeneralEnquiryForm(forms.ModelForm):
children = forms.ChoiceField(choices=(('','-'),) + tuple(((str(x), x) for x in range(0, 11))), required=True)
adults = forms.ChoiceField(choices=(('','-'),) + tuple(((str(x), x) for x in range(1, 11))), required=True)
pets = forms.ChoiceField(choices=((str(x), x) for x in range(0, 11)), required=True, initial=1)
budget = forms.ChoiceField(choices=BUDGET,required=False)
interest_destination = forms.MultipleChoiceField(required=False,
widget=forms.CheckboxSelectMultiple,
choices=INTEREST_DESTINATION_CHOICES)
interest_accommodation = forms.MultipleChoiceField(required=False,
widget=forms.CheckboxSelectMultiple,
choices=INTEREST_ACCOMMODATION_CHOICES)
contact_preference = forms.ChoiceField(required=False,
widget=forms.RadioSelect,
choices=CONTACT_PREFERENCE)
inspire_hours = forms.ChoiceField(choices=INSPIRE_HOURS, required=False)
def __init__(self, *args, **kwargs):
super(TravelGeneralEnquiryForm, self).__init__(*args, **kwargs)
self.fields['name_title'].widget.attrs = {'class': 'form-control',}
self.fields['name_title'].label = 'Title*'
self.fields['first_name'].widget.attrs = {'class': 'form-control',}
self.fields['first_name'].label = 'First name*'
self.fields['last_name'].widget.attrs = {'class': 'form-control',}
self.fields['last_name'].label = 'Last name*'
self.fields['email'].widget.attrs = {'class': 'form-control',}
self.fields['email'].label = 'Email address*'
self.fields['telephone'].widget.attrs = {'class': 'form-control',}
self.fields['telephone'].label = 'Telephone number*'
self.fields['check_in_date'].widget.attrs = {'class': 'form-control datepicker', 'data-date-format': 'dd/mm/yyyy', 'placeholder': 'dd/mm/yyyy', 'autocomplete': 'off',}
self.fields['check_in_date'].widget.format = '%d/%m/%Y'
self.fields['check_in_date'].input_formats = ['%d/%m/%Y']
self.fields['check_in_date'].label = 'Check in date*'
self.fields['check_out_date'].widget.attrs = {'class': 'form-control datepicker', 'data-date-format': 'dd/mm/yyyy', 'placeholder': 'dd/mm/yyyy', 'autocomplete': 'off',}
self.fields['check_out_date'].widget.format = '%d/%m/%Y'
self.fields['check_out_date'].input_formats = ['%d/%m/%Y']
self.fields['check_out_date'].label = 'Check out date*'
self.fields['budget'].widget.attrs = {'class': 'form-control'}
self.fields['info'].widget.attrs = {'class': 'form-control', 'rows': '3', 'placeholder': 'Pet breed/size/temperament/food allergies/disabled access'}
self.fields['adults'].widget.attrs = {'class': 'form-control'}
self.fields['adults'].label = 'Number of adults*'
self.fields['children'].widget.attrs = {'class': 'form-control', 'initial': '---'}
self.fields['children'].label = 'Number of children*'
self.fields['pets'].widget.attrs = {'class': 'form-control'}
self.fields['pets'].label = 'Number of pets*'
self.fields['rooms'].widget.attrs = {'class': 'form-control'}
self.fields['rooms'].label = 'Number of rooms*'
self.fields['contact_preference'].label = 'Prefered method of contact'
self.fields['inspire_postcode'].label = 'Your Postcode'
self.fields['inspire_postcode'].widget.attrs = {'class': 'form-control', 'placeholder': 'N1 4SZ'}
self.fields['inspire_hours'].label = 'How far would you like to travel?'
self.fields['inspire_hours'].widget.attrs = {'class': 'form-control'}
self.fields['inspire_details'].widget.attrs = {'class': 'form-control', 'rows': '2', 'cols':50 , 'placeholder': 'The more information you give us, the better we are able to help you!'}
self.fields['inspire_details'].label = 'Additional Information'
class Meta:
model = TravelGeneralEnquiry
exclude = ('enquiry_source',)
class TravelGeneralEnquiryChildForm(forms.ModelForm):
age = forms.ChoiceField(choices=(('-','-'),) + tuple(((str(x), x) for x in range(0, 18))))
def __init__(self, *args, **kwargs):
super(TravelGeneralEnquiryChildForm, self).__init__(*args, **kwargs)
self.fields['age'].widget.attrs = {'class': 'form-control'}
class Meta:
model = TravelGeneralEnquiryChild
fields = ('age',)
class TravelGeneralEnquiryChild(models.Model):
general_enquiry = models.ForeignKey(TravelGeneralEnquiry, blank=False, null=False, related_name="general_enquiry_children")
age = models.CharField(max_length=2, default=0, null=False, blank=False, choices=((str(x), x) for x in range(0, 18)))
值得一提的是,'u'不是隨機的,它表示一個unicode字符串類型。 – Joseph
是的,我意識到這一點。歡呼雖然.. –
你是如何構造錯誤信息? Django 1.8中的默認錯誤消息是'選擇一個有效的選擇。 - 不是可用選項之一。'',它沒有'u'''前綴。 – Alasdair