Ich kenne form.py ehrlich gesagt überhaupt nicht und benutze es zum ersten Mal. Ich habe mehrere Artikel im Internet gelesen, aber ich konnte überhaupt nicht daran denken ... (lacht)
Ich werde es jedoch vorerst schreiben.
form.py
from django import forms
from .models import Staff
class CreateUserForm(forms.ModelForm):
#Modellform erben
class meta():
model = Staff
fields = ("name ", "password", "roll", "nyushabi", "taishabi", "hyoujijyun", "jikyu", "delete ")
Damit scheint es, dass es mit HTML verknüpft wird.
Erstellen Sie als Nächstes Ansichten.
views.py
from django.shortcuts import render
from . import CreateUserForm
def form_name_view(request):
form = forms.UserForm()
if request.method == 'POST':
form = forms.CreateUserForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'templates/staff.create.html', {'CreateUserForm': form})
if request.method=="POST" Ist ein Befehl, der ausgeführt wird, wenn die Registrierungstaste nach der Eingabe gedrückt wird, da es sich um eine Anforderung handelt, die nicht zum ersten Mal angezeigt wird.
Wenn es nicht Post ist, ist es ein Bild, das die Vorlage aufruft und CreateUserForm von Foms aus aufruft. Ich weiß nicht, ob das wirklich in Ordnung ist (lacht)
Erstellen Sie als Nächstes eine Vorlage. Kopieren Sie zunächst base.html von bootstarp und ändern Sie ein Teil.
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.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<title>
{% block title %}
{% endblock title %}
</title>
</head>
<body>
{% blcok 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-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
</body>
</html>
Damit ist die Erstellung des Basisteils abgeschlossen.
HTML für die Registrierung ist
python:staff.create.py
{% extends 'staff/base.html' %}
{% block content %}
{{ form.as_p }}
<input type="submit" class="btn btn-primary" value="Submit">
{% block content %}
Dies sollte es von der Basis laden, in den Inhalt einstecken und anzeigen.
Zum Schluss korrigieren Sie urls.py
python:staff.url.py
from django.urls import path, include
from .views import createstaff
urlpatterns = [
path('create/', createstaff, name = "createstaff"),
]
Starten wir nun den Server und versuchen zu prüfen, ob er einmal angezeigt werden kann.
Es ist ein Fehler, dass Formulare in der 5. Ansichtszeile nicht gefunden werden können.
staff.views
from django.shortcuts import render
from .form import CreateUserForm
def createstaff(request):
form = CreateUserForm.UserForm()
if request.method == 'POST':
form = forms.CreateUserForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'templates/staff.create.html', {'CreateUserForm': form})
Ich werde es noch einmal versuchen.
Es ist immer noch nutzlos.
Danach habe ich versucht, ein wenig damit zu spielen, aber ich konnte den Fehler nicht beheben, daher werde ich die Verwendung von Formular beenden und zum Erstellen mit Klasse wechseln.
Recommended Posts