私のフォームを変更して、自分のモデルのフィールドに新しいラベルを表示しました。今ではユーザーがフォームフィールドを空白のままにすることはできません。私はblank = Trueとnull = Trueを追加しようとしましたが、運がありません。フィールドを空白にする方法を教えてください。Django 1.9フォームフィールドを空白にすることはできません
マイモデル:
class UserProfile(models.Model):
# Page 1
user = models.OneToOneField(User)
first_name = models.CharField(max_length=100, blank=True)
last_name = models.CharField(max_length=100, blank=True)
email = models.EmailField(max_length=100, blank=True, unique=True)
# Page 2 Address
line1 = models.CharField(max_length=255, blank=True, null=True)
line2 = models.CharField(max_length=255, blank=True, null=True)
line3 = models.CharField(max_length=255, blank=True, null=True)
city = models.CharField(max_length=255, blank=True, null=True)
state = models.CharField(max_length=2, blank=True, null=True)
zip_code = models.CharField(max_length=15, blank=True, null=True)
def __str__(self):
return self.user.username
forms.py:
class UserProfileForm3(forms.ModelForm):
line1 = forms.CharField(label="Address")
line2 = forms.CharField(label="")
line3 = forms.CharField(label="")
city = forms.CharField(label="City/Town")
state = forms.CharField(label="State/Province/Region")
zip_code = forms.IntegerField(label="Zip/Postal Code")
def __init__(self, *args, **kwargs):
super(UserProfileForm3, self).__init__(*args, **kwargs)
self.fields['line1'].widget.attrs = {
'class': 'form-control',
'placeholder': 'Address Line 1'
}
self.fields['line2'].widget.attrs = {
'class': 'form-control',
'placeholder': 'Address Line 2'
}
self.fields['line3'].widget.attrs= {
'class': 'form-control',
'placeholder': 'Address Line 3'
}
self.fields['city'].widget.attrs = {
'class': 'form-control',
'placeholder': 'City'
}
self.fields['state'].widget.attrs = {
'id': 'state_id',
'class': 'form-control',
'placeholder': 'State'
}
self.fields['zip_code'].widget.attrs = {
'id': 'zip_code_id',
'class': 'form-control',
'placeholder': 'Zip'
}
self.fields['country'].widget.attrs = {
'class': 'form-control',
'placeholder': 'US',
'value': 'US'
}
class Meta:
model = UserProfile
fields = ('line1', 'line2', 'line3', 'city', 'state', 'zip_code','country')
あなたとダニエルの両方が働いた。しかし、自分では自分の検証エラーを書き込むためにclean_data関数を書くこともできました。もう一つの方法は、単純に私にこれをさせません。 – Lefty