[PYTHON] Implementieren Sie die Django-Benutzererweiterung und registrieren Sie die angehängten Informationen

Beim letzten Mal konnte ich die An- und Abmeldung mit dem Benutzer von Django implementieren.

Ich habe viel recherchiert, um die Benutzerinformationen von dort aus zu erweitern, aber am Ende hat es oft nicht funktioniert.

Schließlich ist es eine Einstellung, die sich wie getan anfühlt.

config/settings.py




INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts.apps.AccountsConfig',
]


LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

STATIC_URL = '/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
LOGIN_REDIRECT_URL = '/accounts/home'
LOGOUT_REDIRECT_URL = '/accounts/home'

#AUTH_USER_MODEL = 'users.CustomUser'

settings/urls.py


from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('accounts.urls')),
]

accounts/urls.py


from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
from django.urls import path, include

app_name = 'accounts'

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('home/', views.home, name="home"),
]

accounts/views.py


from django.shortcuts import render
from django.contrib.auth.decorators import login_required

# Create your views here.
@login_required 
def home(request):
    return render(request, 'accounts/home.html')

accounts/admin.py


from django.contrib import admin
from .models import Profile

# Register your models here.
admin.site.register(Profile)

templates/accounts/base.html


<!doctype html>
<html lang="ja">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">

    {% block customcss %}
    {% endblock customcss %}
    
    <title>verwandte Familie</title>
  </head>
  <body>
  
    {% block header %}
    {% endblock header %}

    {% block content %}
    {% endblock content %}

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
  </body>
</html>

templates/accounts/login.html


{% extends 'accounts/base.html' %}
{% load static %}


{% block customcss %}
    <link rel='stylesheet' type='text/css' href="{% static 'css/accounts/style.css' %}">
{% endblock customcss %}


{% block header %}
{% endblock header %}

{% block content %}
  <body>
    
    <form class="form-login" action='' method='POST'>
    <h1>Anmeldebildschirm</h1>
    {% csrf_token %}

    {{ form.as_p }}

    <button>Einloggen</button>
    <p class="mt-5 mb-3 text-muted">&copy;GK</p>
    </form>
  </body>
</html>
{% endblock content %}

templates/accounts/home.html


{% extends 'accounts/base.html' %}
{% load static %}

{% block customcss %}
    <link rel='stylesheet' type='text/css' href="{% static 'css/style.css' %}">
{% endblock customcss %}


{% block header %}
<title>Startbildschirm</title>
{% endblock header %}

{% block content %}
<body>
  {% if user.is_authenticated %}
  Hi {{ user.username }}!
  <h2>{{ user.get_full_name }}</h2>
  <ul>
    <li>Name: {{ user.username }}</li>
    <li>Position: {{ user.profile.roll }}</li>
    <li>Anstellungsdatum: {{ user.profile.nyushabi }}</li>
    <li>Austrittsdatum: {{ user.profile.taishabi }}</li>
    <li>Bestellung anzeigen: {{ user.profile.hyoujijyun }}</li>
    <li>Stundenlohn: {{ user.profile.jikyu }}</li>
    <li>Flag löschen: {{ user.profile.delete }}</li>
    <li>Eingetragenes Datum: {{ user.profile.create_date }}</li>
    <li>Registrierter Nutzer: {{ user.profile.create_user }}</li>
    <li>Datum und Uhrzeit aktualisieren: {{ user.profile.update_date }}</li>
    <li>Benutzer aktualisieren: {{ user.profile.update_user }}</li>
  </ul>

  <p><a href="{% url 'accounts:logout' %}">logout</a></p>
  {% else %}
  <p>You are not logged in</p>
  <a href="{% url 'accounts:login' %}">login</a>
{% endif %}
  </body>
{% endblock content %}

Zum ersten Mal hier bin ich mekumigriert.

Versuchen Sie, sich als Administrator anzumelden

image.png

image.png

Fügen wir die erweiterten Informationen dem Administrator hinzu.

Und versuchen Sie sich anzumelden

image.png

image.png

Oh, es sieht so aus, als könnten Sie die angehängten Informationen erhalten

Fügen Sie einen Benutzer hinzu und prüfen Sie, ob dies wirklich anders funktioniert.

Ich versuche, weitere Informationen zu erhalten, indem ich einen Präsidenten namens Hanako hinzufüge ...

image.png

Ich kann gehen.

Was mir hier aufgefallen ist ... Es kann dupliziert werden, da das Standardelement des Benutzers ein gültiges oder ungültiges Flag enthält. In Zukunft wird es möglicherweise gelöscht, da es nicht erforderlich ist.

Ich werde vorerst damit fortfahren.

Nun, ich weiß nicht, was ich versucht habe und bin beim Login hängen geblieben (lacht) Ich erinnere mich, dass ich darüber nachdachte, einen neuen Bildschirm für die Mitarbeiterregistrierung zu erstellen. Wenn ich mich auf dem Administratorbildschirm registrieren und bearbeiten kann, ist er meiner Meinung nach für eine Weile nicht betriebsbereit. Ich möchte eine andere Funktion implementieren.

Recommended Posts

Implementieren Sie die Django-Benutzererweiterung und registrieren Sie die angehängten Informationen
Beurteilen Sie die Erweiterung und laden Sie das Bild herunter
Benutzerinformationen usw. in das Django-Protokoll ausgeben
Implementieren Sie ein benutzerdefiniertes Benutzermodell in Django
Django http Geben Sie den Statuscode an und kehren Sie zurück.
Übergeben Sie Login-Benutzerinformationen, um sie in Django anzuzeigen
[Keras] Implementiere einen lauten Schüler und überprüfe den Effekt
Registrieren Sie Wörter im Benutzerwörterbuch von GiNZA (SudachiPy)