$ ls fbvApp/templates/fbvApp/
create.html index.html update.html
# models.py
from django.db import models
class Student(models.Model):
firstName = models.CharField(max_length=20)
lastName = models.CharField(max_length=20)
testScore = models.FloatField()
# forms.py
from django import forms
from .models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = '__all__'
# urls.py
from fbvApp.views import getStudents, createStudent, deleteStudent, updateStudent
urlpatterns = [
path('admin/', admin.site.urls),
path('', getStudents, name='index'),
path('create/', createStudent, name='create'),
path('delete/<int:id>', deleteStudent, name='delete'),
path('update/<int:id>', updateStudent, name='update'),
]
# views.py
from django.shortcuts import render, redirect
from .models import Student
from .forms import StudentForm
def getStudents(request):
students = Student.objects.all()
return render(request, 'fbvApp/index.html', {'students': students})
def createStudent(request):
form = StudentForm()
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid:
form.save()
return redirect('/')
return render(request, 'fbvApp/create.html', {'form': form})
def deleteStudent(request, id):
student = Student.objects.get(id=id)
student.delete()
return redirect('/')
def updateStudent(request, id):
student = Student.objects.get(id=id)
form = StudentForm(instance=student)
if request.method == 'POST':
form = StudentForm(request.POST, instance=student)
if form.is_valid():
form.save()
return redirect('/')
return render(request, 'fbvApp/update.html', {'form': form})
<!-- index.html -->
Students</br>
{% for student in students %}
{{ student.id }}
{{ student.firstName }}
{{ student.lastName }}
{{ student.testScore }}
<a href="delete/{{student.id}}">Delete</a>
<a href="update/{{student.id}}">Update</a></br>
{% endfor %}
</br>
<a href="create/">Create</a>
<!-- create.html -->
Create Student
<form method="post">
{{ form.as_p }}
{% csrf_token %}
<input type='submit' value='Sent'>
</form>
<!-- update.html -->
Update Student
<form method="post">
{{ form.as_p }}
{% csrf_token %}
<input type='submit' value='Sent'>
</form>