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.
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.
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.
Ich werde den Registrierungsknopf drücken
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
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