Honnêtement, je ne connais pas du tout form.py et je l'utilise pour la première fois. J'ai lu plusieurs articles sur le net, mais je n'y pensais pas du tout ... (rires)
Cependant, je vais l'écrire pour le moment.
form.py
from django import forms
from .models import Staff
class CreateUserForm(forms.ModelForm):
#Hériter du modelform
class meta():
model = Staff
fields = ("name ", "password", "roll", "nyushabi", "taishabi", "hyoujijyun", "jikyu", "delete ")
Avec cela, il semble qu'il sera lié au html.
Ensuite, créez des vues.
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" Est une commande qui fonctionne lorsque le bouton d'enregistrement est enfoncé après avoir saisi quelque chose, car il s'agit d'une demande qui n'est pas affichée pour la première fois.
Si ce n'est pas Post, c'est une image qui appelle le modèle et appelle CreateUserForm depuis Foms. Je ne sais pas si ça va vraiment (rires)
Ensuite, créez un modèle. Tout d'abord, copiez base.html depuis bootstarp et modifiez une pièce.
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>
Ceci termine la création de la pièce de base.
HTML pour l'enregistrement est
python:staff.create.py
{% extends 'staff/base.html' %}
{% block content %}
{{ form.as_p }}
<input type="submit" class="btn btn-primary" value="Submit">
{% block content %}
Cela devrait le charger depuis la base, le brancher sur le contenu et l'afficher.
Enfin, corrigez urls.py
python:staff.url.py
from django.urls import path, include
from .views import createstaff
urlpatterns = [
path('create/', createstaff, name = "createstaff"),
]
Maintenant, démarrons le serveur et essayons de voir s'il peut être affiché une fois.
C'est une erreur que les formulaires ne peuvent pas être trouvés sur la 5ème ligne de vues.
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})
Je vais essayer à nouveau avec ça.
C'est toujours inutile.
Après cela, j'ai essayé de jouer un peu avec, mais je n'ai pas pu résoudre l'erreur, je vais donc arrêter d'utiliser le formulaire et passer à la création avec classe.
Recommended Posts