, так что я работаю над проектом онлайн-бронирования поездов, и мой проект работает нормально, но только пользователь может забронировать 1 время ticketeach, и я хочу, чтобы он мог забронировать более 1 билета, исходя из этого выбора, также создайте суммуформ в виде билетов и я новичок с django, и я не знаю, с чего начать искать решение для этого: (
Views.py
imports...
# Get an instance of a logger
logger = logging.getLogger(__name__)
# Create your views here.
def details_page(request):
if request.method == 'GET':
end_station_id = request.GET.get('station')
elif request.method == 'POST':
end_station_id = request.POST.get('to_station')
# print(request.GET.get('to_station'))
# Ticket.objects.filter(pk__in=[1,2,3,4,5,6,7,8,9])
trips = Trip.objects.filter(end_station_id=end_station_id)
context = {'trips': trips}
return render(request, 'details/details.html', context)
def trips_page(request, trip_id):
trip = get_object_or_404(Trip, pk=trip_id)
error = None
ticket = None
if request.method == 'POST':
first_name = request.POST.get('first_name')
middle_name = request.POST.get('middle_name')
last_name = request.POST.get('last_name')
email = request.POST.get('email')
gender = request.POST.get('gender')
ticket = Ticket(trip=trip, first_name=first_name, middle_name=middle_name,
last_name=last_name, email=email, gender=gender)
try:
ticket.full_clean()
ticket.save()
return redirect('tickets', ticket_id=ticket.id)
except ValidationError as e:
error = dict(e)
print(e)
context = {'trip': trip, 'error': error, 'ticket': ticket}
return render(request, 'details/trips.html', context)
Models.py
class Ticket(models.Model):
GENDER = (
('m', 'Male'),
('f', 'Female'),
)
trip = models.ForeignKey(Trip, related_name="tickets", null=True, on_delete=models.CASCADE)
booking_time = models.DateTimeField(auto_now_add=True, blank=True)
first_name = models.CharField(validators=[validate_string], null=True, max_length=100, blank=False)
middle_name = models.CharField(validators=[validate_string], null=True, max_length=100, blank=False)
last_name = models.CharField(validators=[validate_string], null=True, max_length=100, blank=False)
email = models.EmailField(max_length=70, blank=True, null=True)
gender = models.CharField(max_length=1, choices=GENDER)
def __str__(self):
return "{}".format(self.first_name)