Skip to content

Instantly share code, notes, and snippets.

@efojs
Created November 30, 2021 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save efojs/19dd038ab5ebb8d264a6e345bb3940c5 to your computer and use it in GitHub Desktop.
Save efojs/19dd038ab5ebb8d264a6e345bb3940c5 to your computer and use it in GitHub Desktop.
from django.db import models
class Train(models.Model):
name = models.CharField(max_length=128)
class Car(models.Model):
seats_range = models.PositiveSmallIntegerField()
next = models.OneToOneField(
"self", related_name="previous", on_delete=models.CASCADE
)
train = models.ForeignKey(Train, on_delete=models.CASCADE)
class Station(models.Model):
name = models.CharField(max_length=256)
class Stop(models.Model):
arrival_at = models.DateTimeField()
departure_at = models.DateTimeField()
station = models.ForeignKey(Station, on_delete=models.CASCADE)
next = models.OneToOneField(
"self", related_name="previous", on_delete=models.CASCADE
)
train = models.ForeignKey(Train, on_delete=models.CASCADE)
class Passenger(models.Model):
first_name = models.CharField(max_length=128)
last_name = models.CharField(max_length=128)
passport = models.CharField(max_length=128)
class Ticket(models.Model):
seat = models.PositiveSmallIntegerField()
price = models.DecimalField(max_digits=8, decimal_places=2)
car = models.ForeignKey(Car, on_delete=models.SET_NULL, null=True)
departure = models.ForeignKey(
Stop, related_name="departures", on_delete=models.SET_NULL, null=True
)
destination = models.ForeignKey(
Stop, related_name="arrivals", on_delete=models.SET_NULL, null=True
)
passenger = models.ForeignKey(Passenger, on_delete=models.SET_NULL, null=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment