Как настроить форму авторизации по умолчанию в Django?

Угловой & 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", чтобы он снова работал.

2
задан fa5pro 27 March 2019 в 04:05
поделиться

2 ответа

Вы можете настроить отображение формы, переопределив / отредактировав 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>

Вы также можете проверить дополнительные параметры рендеринга формы из здесь

0
ответ дан Devang Padhiyar 27 March 2019 в 04:05
поделиться

вы можете переопределить стандартную форму аутентификации

, например,

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>
0
ответ дан Nakul Narayanan 27 March 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: