2017-02-18 5 views
0

У меня есть простой экран входа с именем пользователя и паролем, я хочу пометить каждое поле так, чтобы, если бы пользователь нажал кнопку «Username» или «Password», он автоматически переключил управление полем. Например, как и на домашней странице Facebook. Моя проблема заключается в том, что я не знаю, как я должен правильно использовать <input тегов:Правильно маркировать несколько полей формы Django

<form action="/login/" method='post'> 
    <label for='username_info'> Username </label> 
    {% csrf_token %} 
    {{ form.username }} 
    <p> 
    <label for="password_info"> Password </label> 
    {{ form.password }} 
    <p> 
    <input id='username_info' type='submit'> 
</form> 

Так что работает для Username текста, но не для Password текста очевидно. Как правильно пометить каждое поле? Я посмотрел на Django Docs example, но когда я пытаюсь использовать тег шаблона django как атрибут value для тега input, он отображает только необработанный html в поле.

редактировать: forms.py файл:

от Джанго импортных форм из моделей импорта LoginInfo

class LoginForms(forms.ModelForm): 

    class Meta: 
     model = LoginInfo 
     fields = ('username', 'password') 

ответ

2

Facebook не использует ярлыки в форме посадки, они используют заполнители. Это, как вы используете один с Джанго форм:

q = forms.CharField(label='username', 
       widget=forms.TextInput(attrs={'placeholder': 'Username'})) 

Для получения дополнительной информации смотрите на widgets documentation.

Edit: Отвечая на Ваш вопрос в комментарии, ваш forms.py будет выглядеть примерно так:

class LoginForm(forms.Form): 
    username = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Username'})) 
    password = forms.CharField(widget=forms.PasswordInput) 

бы этот эффект мои модели на всех?

Нет, даже если вы его сохраните, это не связано с какой-либо моделью.

+0

спасибо за это, у меня есть только вопрос. Я читал документы, как бы реализовать это в моем файле forms.py? Это повлияет на мои модели? – Amon

+0

@ Амон, отредактировал мой ответ, чтобы ответить на ваши вопросы. – mxle

+0

Благодарим, сейчас я использую класс «Meta», который ссылается на мои модели, поэтому я задаю вопрос. В настоящее время я создаю свои формы на таких моделях, как это говорится в документах: https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/ – Amon

1

Я не знаю, что это проблема. Но вы можете дать метки на forms.py так:

username = forms.CharField(label='Username', max_length = 100) 
password = forms.CharField(label='Password', max_length = 100) 

Надеется, что это может помочь.

+0

Эй, проблема в том, что я хочу правильно использовать тег

1

Используйте атрибут label_tag, который автоматически выводит HTML для метки.

<p> 
{{ form.password.label_tag }} 
{{ form.password }} 
</p> 
Смежные вопросы