Угловой & lt; 1.4
Для тех, кто относится к «null» как действительное значение для одного из параметров (поэтому представьте, что «null» является значением одного из элементов в typeOptions в пример ниже), я обнаружил, что самый простой способ убедиться, что автоматически добавленная опция скрыта, - это использовать ng-if.
<select ng-options="option.value as option.name for option in typeOptions">
<option value="" ng-if="false"></option>
</select>
Почему ng-if и not ng-hide? Поскольку вы хотите, чтобы селектора css, предназначенные для первой опции внутри, выбирали целевую «реальную» опцию, а не ту, которая скрыта. Он полезен, когда вы используете транспортир для тестирования e2e и (по какой-либо причине) вы используете by.css () для целевых опций выбора.
Угловой> = 1.4
Из-за рефакторинг директив select и options с использованием ng-if
больше не является жизнеспособным вариантом, поэтому вам нужно обратиться к ng-show="false"
, чтобы он снова работал.
Вы можете настроить отображение формы, переопределив / отредактировав templates / registration / login.html , как показано ниже.
Это, например, только вы можете изменять стили и форматирование CSS по своему усмотрению.
<h2>Login</h2>
<form method="post">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.username.errors }}
<label for="{{ form.username.id_for_label }}">Username:</label>
{{ form.username }}
</div>
<div class="fieldWrapper">
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}">Password:</label>
{{ form.password }}
</div>
<button type="submit">Login</button>
</form>
Вы также можете зацикливать поля формы
<h2>Login</h2>
<form method="post">
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
<button type="submit">Login</button>
</form>
Вы также можете проверить дополнительные параметры рендеринга формы из здесь
вы можете переопределить стандартную форму аутентификации
, например,
from django.contrib.auth.forms import AuthenticationForm
from django import forms
class UserLoginForm(AuthenticationForm):
def __init__(self, *args, **kwargs):
super(UserLoginForm, self).__init__(*args, **kwargs)
username = forms.EmailField(widget=forms.TextInput(
attrs={'class': 'form-control', 'placeholder': '', 'id': 'hello'}))
password = forms.CharField(widget=forms.PasswordInput(
attrs={
'class': 'form-control',
'placeholder': '',
'id': 'hi',
}
))
в url.py, вы также можете передать эту пользовательскую форму аутентификации, например,
from django.contrib.auth import views
from myapp.forms import UserLoginForm
urlpatterns = [
path(
'login/',
views.LoginView.as_view(
template_name="login.html",
authentication_form=UserLoginForm
),
name='login'
)
]
Вы можете переопределить шаблон входа в систему
и настроить шаблон в соответствии с вашими требованиями
<form method="post">
{{ form.non_field_errors }}
<div class="form-group">
<label for="{{ form.username.id_for_label }}">Username:</label>
{{ form.username }}
{{ form.username.errors }}
</div>
<div class="form-group">
<label for="{{ form.password.id_for_label }}">Password:</label>
{{ form.password }}
{{ form.password.errors }}
</div>
<button type="submit">Login</button>
</form>