BL4CK R4BBIT
BL4CK R4BBIT5. Juli 2019 03:02

Ссылка в админке под полем пароль

После смены модели на AbstractUser И создания форм регистрации и редактирования в админке пропала строка с надпись о пароле и ссылки на его смену. В профиле пользователя все работает прекрасно. Как вернуть строку

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

6
Evgenii Legotckoi
  • 5. Juli 2019 09:13

Добрый день!

А можете показать программный код как задавали форму для админки, а также саму подмель данных?

Скорее всего там нужно использовать форму UserAdmin

    BL4CK R4BBIT
    • 5. Juli 2019 10:16

    весь код выполняется без ошибок. Группы заменены на должности. Все Ок. Но системные сообщения(инфо) в админке под полями формы не выводятся.

      BL4CK R4BBIT
      • 5. Juli 2019 10:22

      Просто я как бы с джанго как д.Стренж с санскритом)

        Evgenii Legotckoi
        • 5. Juli 2019 10:24

        Сообщения под полями формы не выводятся потому, что вы их не написали. Эти сообщения нужно написать прямо в полях в модели данных. За это отвечает help_text .

        sur_name = models.CharField(max_length=True, db_index=True, help_text='Фамилия', verbose_name='Фамилия')
        

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

          Думаю, что ссылка на изменение пароля в оригинальном поле также делается через help_text, но возможно с html кодом.

            BL4CK R4BBIT
            • 5. Juli 2019 11:55
            • Die Antwort wurde als Lösung markiert.

            Решение нашел. Спасибо за указанное направление поиска. Оставил код формы

            from django import forms
            from django.contrib.auth import password_validation
            from django.core.exceptions import ValidationError
            from django.contrib.auth.forms import ReadOnlyPasswordHashField
            from .models import MedicalUser
            
            class ChangeUserInfoForm(forms.ModelForm):
                username = forms.CharField(required=True, label='Имя пользователя')
                password = ReadOnlyPasswordHashField(label= ("Password"),
                    help_text= ("Необработанные Пароли не сохраняются, поэтому нет никакого способа увидеть  "
                                "пароль этого пользователя, но вы можете изменить пароль "
                                "с помощью <a href=\"../password/\">этой формы</a>."))
            
                class Meta:
                    model = MedicalUser
                    fields = ('username', 'email', 'first_name', 'last_name')
            
                def clean_password(self):
                    # Regardless of what the user provides, return the initial value.
                    # This is done here, rather than on the field, because the
                    # field does not have access to the initial value
                    return self.initial["password"]
            
            class CreateUserForm(forms.ModelForm):
                username = forms.CharField(required=True, label='Имя пользователя')
                password1 = forms.CharField(label='Пароль',
                    widget=forms.PasswordInput,
                    help_text=password_validation.password_validators_help_text_html())
                password2 = forms.CharField(label='Пароль (повторно)',
                    widget=forms.PasswordInput,
                    help_text='Введите тот же пароль повторно для проверки')
            
                def clean_password1(self):
                    password1 = self.cleaned_data['password1']
                    if password1:
                        password_validation.validate_password(password1)
                    return password1
            
                def clean(self):
                    super().clean()
                    password1 = self.cleaned_data['password1']
                    password2 = self.cleaned_data['password2']
                    if password1 and password2 and password1 !=password2:
                        errors = {'password2': ValidationError (
                            'Введенные пароли не совпадают', code='password_mismatch')}
            
                def save(self, commit=True):
                    user = super(CreateUserForm, self).save(commit=False)
                    user.set_password(self.cleaned_data['password1'])
                    if commit:
                        user.save()
                    return user
            
                class Meta:
                    model = MedicalUser
                    fields = ('username', 'email', 'password1', 'password2', 'first_name', 'last_name')
            

              Kommentare

              Nur autorisierte Benutzer können Kommentare posten.
              Bitte Anmelden oder Registrieren
              Letzte Kommentare
              A
              ALO1ZE19. Oktober 2024 08:19
              Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
              ИМ
              Игорь Максимов5. Oktober 2024 07:51
              Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
              d
              dblas55. Juli 2024 11:02
              QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
              k
              kmssr8. Februar 2024 18:43
              Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
              Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
              Jetzt im Forum diskutieren
              J
              JacobFib17. Oktober 2024 03:27
              добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
              JW
              Jhon Wick1. Oktober 2024 15:52
              Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
              КГ
              Кирилл Гусарев27. September 2024 09:09
              Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
              F
              Fynjy22. Juli 2024 04:15
              при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

              Folgen Sie uns in sozialen Netzwerken