I am trying to create a template and view that will delete all checked items. I am fairly new and cant seem to figure out to get remove all items checked.
VIEWS.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.urls import reverse
from .models import Flight, Passenger
# Create your views here.
def index(request):
context = {
'flights': Flight.objects.all(),
}
return render(request, "flights/index.html", context=context)
def flight(request, flight_id):
flight = Flight.objects.get(pk=flight_id)
passengers = flight.passengers.all()
non_passengers = Passenger.objects.exclude(flights=flight).all()
context = {
'flight': flight,
'passengers': passengers,
'non_passengers': non_passengers
}
return render(request, "flights/flight.html", context=context)
def book(request, flight_id):
if request.method == "POST":
flight = Flight.objects.get(pk=flight_id)
passenger = Passenger.objects.get(pk=int(request.POST["passenger"]))
passenger.flights.add(flight)
return HttpResponseRedirect(reverse("flight", args=(flight.id,)))
def delete_booking(request, flight_id):
if request.method == "POST":
flight = Flight.objects.get(pk=flight_id)
passenger = Passenger.objects.get(pk=int(request.POST["passenger"]))
passenger.flights.remove(flight)
return HttpResponseRedirect(reverse("flight", args=(flight.id,)))
FLIGHT.html
{% extends "base/base.html" %}
{% block body %}
<h1>Flight {{ flight.id }}</h1>
<ul>
<li>Origin: {{ flight.origin }}</li>
<li>Destination: {{ flight.destination }}</li>
<li>Duration: {{ flight.duration}} </li>
</ul>
<h2>Passengers</h2>
<form action="{% url 'delete_booking' flight.id %}" method="POST">
{% csrf_token %}
{% for passenger in passengers %}
<li><input type="checkbox" name="passenger" value="{{ passenger.id }}">{{ passenger }}</input></li>
{% empty %}
<li>No Passengers</li>
{% endfor %}
<button type="submit">Remove</button>
</form>
<h2>Add Passenger type 1</h2>
<form action="{% url 'book' flight.id %}" method="POST">
{% csrf_token %}
<select name="passenger">
{% for passenger in non_passengers %}
<option value="{{ passenger.id }}">{{ passenger }}</option>
{% endfor %}
</select>
<input type="submit">
</form>
<a href="{% url 'index' %}">Back</a>
{% endblock body %}```