Skip to content

Instantly share code, notes, and snippets.

@eclecticmiraclecat
Created November 5, 2020 08:56
Show Gist options
  • Save eclecticmiraclecat/cb4d9c83e6116f6f40b49c08b887cf7a to your computer and use it in GitHub Desktop.
Save eclecticmiraclecat/cb4d9c83e6116f6f40b49c08b887cf7a to your computer and use it in GitHub Desktop.
$ 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment