[PYTHON] Erstellen Sie den Registrierungsbildschirm für Django-Mitarbeiter mit Klasse neu

Ich habe versucht, einen Registrierungsbildschirm mit der def-Funktion zu erstellen, aber es hat nicht funktioniert, also habe ich zum Erstellen mit Klasse gewechselt.

Es gibt einige Teile, die Sie damit erstellen müssen, und einige Teile, die Sie nicht erstellen. Seien Sie also nicht zu genau bei Bildschirmen, die Sie nicht oft verwenden.

python:staff.urls.py


from django.urls import path, include
from .views import StaffCreate

urlpatterns = [
    path('create/', StaffCreate.as_view(), name = "staffcreate"),
]

Ändern Sie auch das Routing von URLs. Im Fall einer Klasse scheint as_view () eine Regel zu sein.

Und auch Ansichten geändert

views.py


from django.shortcuts import render
from .form import CreateUserForm
from .models import Staff
from django.views.generic import CreateView


class StaffCreate(CreateView):
    template_name = "staff/create.html"
    model = Staff
    fields = ("id", "name", "password", "roll", "nyushabi", "taishabi", "hyoujijyun", "jikyu", "delete")
    ##success_url = reverse_lazy("list")

Wenn die Registrierung erfolgreich ist, kehre ich zum Bildschirm der Mitarbeiterliste zurück, habe ihn jedoch noch nicht erstellt und daher auskommentiert.

Ändern Sie abschließend die HTML-Datei.

python:staff.create.html


{% extends 'base.html' %}

{% block title %}
{% endblock title %}

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

{% block content %}
<from action="" method="POST">
    {{ form.as_p }}
    <input type="submit" value="Anmeldung">
</from>
{% endblock content %}

Dies sollte getan werden ... Ich versuche immer, es mit einem Fehler von hier zu beheben.

Starten Sie den Server http://127.0.0.1:8000/staff/create/

Öffnen wir die Seite mit.

image.png

Oh, es wurde angezeigt! Es ist ein einfacher und klobiger Bildschirm, aber es ist wichtig, dass die Funktion funktioniert! (Ich hoffe, ich kann die Dekorationen hier in Zukunft tragen, aber zuerst werden die Funktionen implementiert!)

Ich werde versuchen, mich zu registrieren.

image.png

Nun, das Datum ist auch solide, es ist schwer zu verstehen, wie man es eingibt, und eine Korrektur kann wesentlich sein (lacht) Sie können es erleben, indem Sie es selbst eingeben. Machen wir ein liebevolles System

Klicken Sie jedoch vorerst auf die Schaltfläche Registrierung

Das? Es gibt keine Reaktion Ich wundere mich warum ...

weiß nicht…

Wenn Sie Modelle erneut überprüfen, ist es schwierig, das Erstellungsdatum und die Erstellungszeit zu kennen. Korrigieren Sie sie daher. Vielleicht liegt es daran, dass ich mich nicht als Benutzer registriert habe ...

staff.py


from django.db import models

class Staff(models.Model):
    id = models.AutoField(verbose_name='Mitarbeiter-ID',primary_key=True)
    password = models.CharField(verbose_name='Passwort',max_length=20)
    name = models.CharField(verbose_name='Mitarbeitername',max_length=20, blank=False, null=True)
    roll = models.CharField(verbose_name='Position',max_length=10, blank=False, null=True)
    nyushabi = models.DateField(verbose_name='Anstellungsdatum',blank=False, null=True)
    taishabi = models.DateField(verbose_name='Austrittsdatum',blank=True, null=True)
    hyoujijyun = models.IntegerField(verbose_name='Bestellung anzeigen',unique=True)
    jikyu = models.IntegerField(verbose_name='Stundenlohn',blank=False, null=True)
    delete = models.BooleanField(verbose_name='Flag löschen',default=False)
    create_date = models.DateTimeField(verbose_name='Eingetragenes Datum', auto_now_add=True)
    create_user = models.CharField(verbose_name='Registrierter Nutzer', max_length=50, null=True)
    update_date = models.DateTimeField(verbose_name='Datum und Uhrzeit aktualisieren', auto_now=True)
    update_user = models.CharField(verbose_name='Benutzer aktualisieren', max_length=50, null=True)

    def __str__(self):
        return self.name

registrieren ⇒ Zum Erstellen geändert. Das ist leichter zu verstehen

Führen Sie die Migration durch

Außerdem habe ich vergessen, standortübergreifende Maßnahmen hinzuzufügen, also habe ich sie hinzugefügt

python:staff.create.html


{% extends 'base.html' %}

{% block title %}
{% endblock title %}

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

{% block content %}
<from action="" method="POST">{% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="Anmeldung">
</from>
{% endblock content %}

Nun, ich habe nichts geändert, daher scheint die Registrierung nicht zu funktionieren. Ich werde es versuchen.

image.png

Ich werde den Registrierungsknopf drücken

image.png

Keine Reaktion (lacht)

Nun, ich kenne die Ursache nicht ...

Ich fragte mich, ob ich etwas verstehen könnte, wenn ich mich auf dem Administratorbildschirm registrieren würde, aber als ich es versuchte, trat der folgende Fehler auf

image.png

Registrierte Benutzer und aktualisierte Benutzer sind erforderlich ... Das bedeutet, dass zuerst der Anmeldebildschirm erstellt wird und Sie sich dann anmelden, um den Benutzer zu erhalten und ihn bei der Registrierung zu verwenden. Gut zu bemerken: smiley:

Ich werde die Erstellung des Bildschirms zur Mitarbeitererstellung unterbrechen und den Anmeldebildschirm erstellen.

Recommended Posts

Erstellen Sie den Registrierungsbildschirm für Django-Mitarbeiter mit Klasse neu
Übergang zum Update-Bildschirm mit dem Django-Tag
[Django] Registrierungsdaten für Benutzer im Registrierungs- / Bearbeitungsformular (Formular) anzeigen
Erstellen eines Anmeldebildschirms in Django all auth
Erstellen Sie mit Django Updateview einen Update-Bildschirm
Wiederholen Sie alles für den Django-Anmeldebildschirm
Der einfachste Weg, um mit Django zu beginnen
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
DJango Memo: Von Anfang an (Fehlerbildschirmeinstellung)
Internationalisierung mit Django
CRUD mit Django
Mache Fatjar, indem du die Hauptklasse mit Gradle wechselst
Fügen Sie Attribute von Klassenobjekten mit einer for-Anweisung hinzu
Klicken Sie nach der Oauth-Authentifizierung mit Django auf die Twitter-API
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Die Geschichte, die Japan ausgab, wurde mit Django verwechselt
So registrieren Sie dieselben Daten mehrmals mit einer Eingabe auf dem Verwaltungsbildschirm von Django