Итак, у меня есть модель под названием Users, в которой есть поле с именем first_name.
class Users(models.Model):
alpha_field = RegexValidator(regex=r'^[a-zA-Z]+$', message='Name can only contain letters')
user_id = models.AutoField(unique=True, primary_key=True)
username = models.SlugField(max_length=50, unique=True)
first_name = models.CharField(max_length=50, verbose_name='first Name', validators=[alpha_field])
last_name = models.CharField(max_length=50, validators=[alpha_field])
password = models.SlugField(max_length=50)
а затем я создал UsersForm, а затем на моей странице шаблона, при отображении любых сообщений об ошибках, он не использует подробное имя, он использует first_name. Например, мой код шаблона для ошибок отображения:
{% for field, error in form.errors.items %}
{% if forloop.counter == 1 %}
{{ field }}{{ error | striptags }}
{% endif %}
{% endfor %}
Если есть ошибка в поле first_name, например, если я не заполнил его и все равно нажал кнопку «Отправить», он отобразит это
"first_nameThis field is required" Как сделать так, чтобы вместо него отображалось "First NameThis field is required"?
Не то чтобы это могло сделать другое, но обратите внимание, что я использую юг и schemamigration для обновления базы данных, изначально у него не было подробного имени, но я недавно добавил его, а затем просто сохранил файл (я не делал schemamigration и затем перенесите приложение, потому что в нем говорилось, что никаких изменений не было).
Моя UsersForm такова:
from django import forms
from models import Users
class UsersForm(forms.ModelForm):
class Meta:
model = Users
widgets = {'password':forms.PasswordInput()}
def __init__(self, *args, **kwargs):
super( UsersForm, self ).__init__(*args, **kwargs)
self.fields[ 'username' ].widget.attrs[ 'placeholder' ]="Username"
self.fields[ 'first_name' ].widget.attrs[ 'placeholder' ]="First Name"
self.fields[ 'last_name' ].widget.attrs[ 'placeholder' ]="Last Name"
self.fields[ 'password' ].widget.attrs[ 'placeholder' ]="Password"
self.fields['first_name'].label='first Name'
мой взгляд здесь:
def home_page(request):
form = UsersForm()
if request.method == "POST":
form = UsersForm(request.POST)
if form.is_valid():
form.save()
c = {}
c.update(csrf(request))
c.update({'form':form})
return render_to_response('home_page.html', c)
UsersForm
форму? - person alecxe   schedule 26.09.2013self.fields['first_name'].label = 'First'
в конец__init__()
формы и проверить, работает ли это? - person alecxe   schedule 26.09.2013__init__()
вашей формы. Сообщите мне, помог ли какой-либо из этих вариантов. Кроме того, какую версию django вы используете? - person alecxe   schedule 26.09.2013self.fields['first_name'].error_messages = {'required': 'First Name is Required'}
в конец формы__init__()
? - person alecxe   schedule 26.09.2013